Подтвердить что ты не робот

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

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

Что-то вроде: select something from table where columna does not equal x and columnb does not equal x

Любые идеи?

4b9b3361

Ответ 1

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

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

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

$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
}

Вы можете делать все, что хотите, в цикле выше. Получите доступ к каждому полю таблицы как к элементу $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)";

Ответ 2

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

NOT columnA = 'x'

или

columnA != 'x'

или

columnA <> 'x'

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

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

Вы можете сделать это простым путем

Not columnA <=> 'x'

<= > - это Null Safe, равный Operator, который включает в себя результаты даже от нулевых значений.

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

Или можно также вставить инструкцию внутри скобки.

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

Ответ 6

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

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