我用的是node的 mysql
并尝试执行如下查询:
connection.query(`SELECT * FROM table WHERE name = ? AND field = ?`, ['a', value]);
我遇到的问题是有时候 value = 1
但有时 value = null
.
在我的测试中,只有当查询写为 WHERE value IS null
而且不适用于 WHERE value = null
.
问:如果值可能为空,如何使用准备好的查询?
我用的是node的 mysql
并尝试执行如下查询:
connection.query(`SELECT * FROM table WHERE name = ? AND field = ?`, ['a', value]);
我遇到的问题是有时候 value = 1
但有时 value = null
.
在我的测试中,只有当查询写为 WHERE value IS null
而且不适用于 WHERE value = null
.
问:如果值可能为空,如何使用准备好的查询?
3条答案
按热度按时间11dmarpk1#
没人提到宇宙飞船操作员
<=>
,它使用空到空的比较这里是伟大的太空船运营商的描述
4smxwvx52#
很抱歉让你失望,但你不能
你应该使用不同的比较语句,也就是
WHERE value IS NULL
WHERE value = <your value>
对于mysql引用,空值的处理方式不同,而且空值是一个缺少的值。所以不能对null使用算术比较这是参考资料https://dev.mysql.com/doc/refman/8.0/en/working-with-null.html
vuv7lop33#
也许你想试试这个:
SELECT * FROM table WHERE IFNULL(name, 'null') = 'null' AND IFNULL(field, 'null') = 'null'
但下一个问题是,不能用值“null”填充字段,否则会使查询和数据不明确。