我有一个整数列的表。它有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/