代码之家  ›  专栏  ›  技术社区  ›  d-_-b

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

  •  0
  • d-_-b  · 技术社区  · 7 年前

    mysql

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

    value = 1 但有时 value = null .

    从我的测试中,只有当查询被写为 WHERE value IS null 也不适用于 WHERE value = null

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

    2 回复  |  直到 7 年前
        1
  •  4
  •   Hari Setiawan    7 年前

    很抱歉让你失望,但是 你不能

    1. WHERE value IS NULL

    2. WHERE value = <your value>

    对于Mysql引用,空值的处理方式不同,而且空值是一个丢失的值。所以 不能对空值使用算术比较

    这是参考资料 https://dev.mysql.com/doc/refman/8.0/en/working-with-null.html

        2
  •  1
  •   Ahmed Subkhi    7 年前

    SELECT * FROM table WHERE IFNULL(name, 'null') = 'null' AND IFNULL(field, 'null') = 'null'

    但下一个问题是,不能用值“null”填充字段,否则将使查询和数据变得不明确。

        3
  •  0
  •   Krzysiek    6 年前

    没人提到太空船操作员 <=> ,它使用空到空的比较

    Here is great spaceship operator description

    推荐文章