从哪里select字段不等于Myspp

我只是想知道什么样的MySQL命令,我可以在PHP中执行,将select所有项目从某个表columna不等于x和columnb不等于x

例如: select something from table where columna does not equal x and columnb does not equal x

有任何想法吗?

关键是sql查询,您将设置为一个string:

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

在上面的while循环中,你可以做任何你想做的事情。 访问表的每个字段作为$row array的元素,这意味着$row['field1']会给你在当前行的field1的值,而$row['field2']会给你的值field2

请注意,如果列可以具有NULL值,那么将不会使用上述语法中的任何一种来find这些值。 您将需要添加子句以包含NULL值:

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

你可以用like

 NOT columnA = 'x' 

要么

 columnA != 'x' 

要么

 columnA <> 'x' 

和Jeffly Bake的查询一样,为了包含空值,你不必像写一样

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

你可以简单的通过

 Not columnA <=> 'x' 

<=>是Null等于运算符,其中包括偶数空值的结果。

 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'"; 

我build议使用菱形运算符(<>)来支持!=,因为第一个是有效的SQL,第二个是MySQL。

或者也可以在括号内插入语句。

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

你也可以用

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