我正在使用节点的mysql
库,并尝试执行如下查询:
connection.query(`SELECT * FROM table WHERE name = ? AND field = ?`, ['a', value]);
我遇到的问题是有时value = 1
但有时value = null
。
根据我的测试,仅当查询写为WHERE value IS null
且不适用于WHERE value = null
时,结果才返回。
问:如果值可能为空,如何使用准备好的查询?
答案 0 :(得分:4)
很抱歉让您失望,但您不能
您应该使用其他比较语句,即
anyone has a good solution for it?
WHERE value IS NULL
关于Mysql参考,空值的处理方式有所不同,此外,空值是缺少的值。因此您不能对NULL使用算术比较
这里是参考文献https://dev.mysql.com/doc/refman/8.0/en/working-with-null.html
答案 1 :(得分:1)
也许您想尝试一下:
SELECT * FROM table WHERE IFNULL(name, 'null') = 'null' AND IFNULL(field, 'null') = 'null'
但是下一个问题是,您无法将值“ null”填充到字段中,否则将使查询和数据不明确。
答案 2 :(得分:0)
没有人提到太空飞船运营商<=>
,它可以与空对空比较