[mysql]在 where 子句中,则为 NULL

标签: sql MySQL PHP
发布时间: 2017/1/9 22:57:42
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有以下预准备语句。 都是好...

$stmt=$conn->prepare('UPDATE t1 SET c1=? WHERE c2=? AND c3!=?');
$stmt->execute(array(1,2,3));

但现在我想要使用相同的预准备的语句,而是在 WHERE 子句中包含 NULL 值。

$stmt->execute(array(1,NULL,NULL));

将这种决心到 UPDATE t1 SET c1=1 WHERE c2=NULL AND c3!=NULL 吗? 不正确的查询 UPDATE t1 SET c1=1 WHERE c2 IS NULL AND c3 IS NOT NULL 吗? 我如何能预准备语句的 WHERE 子句中允许 NULL 并且不为 NULL 值的单?

解决方法 1:

你问如果一个 SQL 查询包含

 WHERE col = ?

将自动转换为

 WHERE col IS NULL

通过将一个 NULL 值绑定到参数。

答案是没有。 如果某一列具有 NULL 值,它可以永远不会比较等于任何东西。

你需要一个不同的准备的查询。

赞助商