准备的mysql查询,其中值可能为空

cs7cruho  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(292)

我用的是node的 mysql 并尝试执行如下查询:

connection.query(`SELECT * FROM table WHERE name = ? AND field = ?`, ['a', value]);

我遇到的问题是有时候 value = 1 但有时 value = null .
在我的测试中,只有当查询写为 WHERE value IS null 而且不适用于 WHERE value = null .
问:如果值可能为空,如何使用准备好的查询?

11dmarpk

11dmarpk1#

没人提到宇宙飞船操作员 <=> ,它使用空到空的比较
这里是伟大的太空船运营商的描述

4smxwvx5

4smxwvx52#

很抱歉让你失望,但你不能
你应该使用不同的比较语句,也就是
WHERE value IS NULL WHERE value = <your value> 对于mysql引用,空值的处理方式不同,而且空值是一个缺少的值。所以不能对null使用算术比较
这是参考资料https://dev.mysql.com/doc/refman/8.0/en/working-with-null.html

vuv7lop3

vuv7lop33#

也许你想试试这个: SELECT * FROM table WHERE IFNULL(name, 'null') = 'null' AND IFNULL(field, 'null') = 'null' 但下一个问题是,不能用值“null”填充字段,否则会使查询和数据不明确。

相关问题