从字段与条件不匹配的表中进行选择
我只是想知道我可以执行哪种SQL命令,该命令将从列A不等于且列B不等于的某个表中选择所有项x
x
像这样:
select something from table
where columna does not equal x and columnb does not equal x
有什么想法吗?
我只是想知道我可以执行哪种SQL命令,该命令将从列A不等于且列B不等于的某个表中选择所有项x
x
像这样:
select something from table
where columna does not equal x and columnb does not equal x
有什么想法吗?
关键是 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
}
您可以在上面的 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 Bake 的查询一样,对于包含 null 值,您不必像这样编写
(NOT columnA = 'x' OR columnA IS NULL)
您可以通过以下方式简化它
Not columnA <=> 'x'
<=>是等于运算符的 Null Safe,它包括来自偶数 null 值的结果。