Выберите, где поле не равно Mysql Php

Мне просто интересно, какую команду mysql я мог бы выполнить в php, которая выбрала бы все элементы из определенной таблицы, где columna не равна x, а columnb не равна x

что-то типа: select something from table where columna does not equal x and columnb does not equal x

какие идеи?

6 ответов


ключ-это SQL-запрос, который вы настроите как строку:

$sqlquery = "SELECT field1, field2 FROM table WHERE NOT columnA = 'x' AND NOT columbB = 'y'";

обратите внимание, что есть много способов указать нет. Еще один, который работает так же хорошо:

$sqlquery = "SELECT field1, field2 FROM table WHERE columnA != 'x' AND columbB != 'y'";

вот полный пример того, как его использовать:

$link = mysql_connect($dbHost,$dbUser,$dbPass) or die("Unable to connect to database");
mysql_select_db("$dbName") or die("Unable to select database $dbName");
$sqlquery = "SELECT field1, field2 FROM table WHERE NOT columnA = 'x' AND NOT columbB = 'y'";
$result=mysql_query($sqlquery);

while ($row = mysql_fetch_assoc($result) {
//do stuff
}

вы можете делать все, что вы хотели бы в выше цикл while. Доступ к каждому полю таблицы как к элементу $row array что означает $row['field1'] даст вам значение field1 в текущей строке, и $row['field2'] даст вам значение field2.

обратите внимание, что если столбец(ы) может иметь NULL значения, которые не будут найдены с использованием любого из вышеуказанных синтаксисов. Вам нужно будет добавить предложения, чтобы включить NULL значения:

$sqlquery = "SELECT field1, field2 FROM table WHERE (NOT columnA = 'x' OR columnA IS NULL) AND (NOT columbB = 'y' OR columnB IS NULL)";

вы можете использовать как

NOT columnA = 'x'

или

columnA != 'x'

или

columnA <> 'x'

и как запрос Jeffly выпекать, в том числе нулевые значения, вы не должны писать как

(NOT columnA = 'x' OR columnA IS NULL)

вы можете сделать его простым

Not columnA <=> 'x'

является нулевым сейфом, равным оператору, который включает в себя результаты даже нулевых значений.


select * from table where fiels1 NOT LIKE 'x' AND field2 NOT LIKE 'y'

/ / эта работа в случае нечувствительности


$sqlquery = "SELECT field1, field2 FROM table WHERE columnA <> 'x' AND columbB <> 'y'";

Я бы предложил использовать алмазный оператор ( ) в пользу != поскольку первый является допустимым SQL, а второй-добавлением MySQL.


или можно также вставить оператор внутри кронштейна.

SELECT * FROM tablename WHERE NOT (columnA = 'x')

вы также можете использовать

select * from tablename where column1 ='a' and column2!='b';