从字段与条件不匹配的表中选择

2021-12-19 00:00:00 select php mysql

我只是想知道我可以执行什么样的 SQL 命令来从某个表中选择所有项目,其中 A 列不等于 x 列 B 不等于 x

I'm just wondering what kind of SQL command I could execute that would select all items from a certain table where column A is not equal to x and column B is not equal to x

类似于:

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

有什么想法吗?

推荐答案

关键是 sql 查询,您将其设置为字符串:

The key is the sql query, which you will set up as a string:

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

请注意,有很多方法可以指定 NOT.另一个同样有效的方法是:

Note that there are a lot of ways to specify NOT. Another one that works just as well is:

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

以下是如何使用它的完整示例:

Here is a full example of how to use it:

$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 数组 的一个元素,这意味着 $row['field1'] 将为您提供 field1 的值code> 在当前行上,$row['field2'] 将为您提供 field2 的值.

You can do whatever you would like within the above while loop. Access each field of the table as an element of the $row array which means that $row['field1'] will give you the value for field1 on the current row, and $row['field2'] will give you the value for field2.

请注意,如果列可能具有 NULL 值,则使用上述任一语法都无法找到这些值.您需要添加子句以包含 NULL 值:

Note that if the column(s) could have NULL values, those will not be found using either of the above syntaxes. You will need to add clauses to include NULL values:

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

相关文章