我有一个整数列的表。它有12条记录,编号为1000到1012。记住,这些是整数。
如预期,此查询返回12个结果:

select count(*) from proposals where qd_number::text like '%10%'

同样地:
SELECT COUNT(*) FROM "proposals" WHERE (lower(first_name) LIKE '%10%' OR qd_number::text LIKE '%10%' )

但此查询返回2条记录:
SELECT COUNT(*) FROM "proposals" WHERE (lower(first_name) || ' ' ||  qd_number::text LIKE '%10%' )

这意味着在连接的where表达式中使用| |不等于使用OR。是对的还是我遗漏了什么?

最佳答案

您可能在first_name中有空值。对于这些记录,(lower(first_name) || ' ' || qd_number::text将导致空值,因此您将不再找到这些数字。

关于postgresql - Postgres SQL-使用OR与|||来自LIKE查询的结果不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42344387/

10-16 05:48