【问题标题】:SQL Query "like" operator error, when the field is null当字段为空时,SQL 查询“like”运算符错误
【发布时间】:2020-01-08 15:03:39
【问题描述】:

此查询返回 421 条记录:

现在,当我实现“like”运算符时,它返回 349 条记录,它没有考虑字段“invoice_number”为 null 的记录:

【问题讨论】:

  • 你想达到什么目的?

标签: mysql sql string sql-like sql-null


【解决方案1】:

null like '%%' 这样的条件是假的。 null 不是 like 任何东西。因此,如果您想允许 null 值,则需要明确说明:

and (ds.numero_factura like '%%' or ds.numero_factura is null)

或者你可以使用coalesce():

 and coalesce(ds.numero_factura, '') like '%%'

这个条件实际上并没有什么意义(基本上它会允许所有记录),所以你需要根据你的具体用例来调整它。

另外一个说法是ds.numero_factura看起来像一个数字;在这种情况下,您不想在其上使用字符串函数:改用数字函数。

【讨论】:

    猜你喜欢
    • 2022-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    相关资源
    最近更新 更多