【发布时间】:2020-01-08 15:03:39
【问题描述】:
此查询返回 421 条记录:
现在,当我实现“like”运算符时,它返回 349 条记录,它没有考虑字段“invoice_number”为 null 的记录:
【问题讨论】:
-
你想达到什么目的?
标签: mysql sql string sql-like sql-null
此查询返回 421 条记录:
现在,当我实现“like”运算符时,它返回 349 条记录,它没有考虑字段“invoice_number”为 null 的记录:
【问题讨论】:
标签: mysql sql string sql-like sql-null
像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看起来像一个数字;在这种情况下,您不想在其上使用字符串函数:改用数字函数。
【讨论】: