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

时间:2018-08-04 01:52:51

标签: mysql node.js node-mysql

我正在使用节点的mysql库,并尝试执行如下查询:

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

我遇到的问题是有时value = 1但有时value = null

根据我的测试,仅当查询写为WHERE value IS null且不适用于WHERE value = null时,结果才返回。

:如果值可能为空,如何使用准备好的查询?

3 个答案:

答案 0 :(得分:4)

很抱歉让您失望,但您不能

您应该使用其他比较语句,即

  1. anyone has a good solution for it?

  2. 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)

没有人提到太空飞船运营商<=>,它可以与空对空比较

Here is great spaceship operator description