gpt4 book ai didi

连接列上的 PostgreSQL ILIKE 不起作用

转载 作者:行者123 更新时间:2023-11-29 13:21:24 25 4
gpt4 key购买 nike

我正在尝试使用 ILIKE 查询 PostgreSQL 中的用户名。有 first_name 和 last_name 的列,我希望搜索词与两个串联的词相匹配,中间有一个空格,以便用户可以使用一个输入搜索其中一个或全名。 “John”“Doe”或“John Doe”。

这总是不返回任何结果:

SELECT * FROM user_profiles WHERE first_name || ' ' || last_name ILIKE '%ryan%'

这总是返回我期望的一个结果:

SELECT * FROM user_profiles WHERE first_name ILIKE '%ryan%'

根据我所阅读的所有内容,第一个查询应该按我的预期工作,但事实并非如此。没有结果也没有错误。我在这里缺少什么?

最佳答案

如果 last_nameNULL(如果 first_nameNULL,则第一个查询将不返回任何结果) .

所以,试试这个:

WHERE first_name || ' ' || COALESCE(last_name, '') ILIKE '%ryan%'

或:

WHERE CONCAT_WS(' ', first_name, last_name) ILIKE '%ryan%'

concat_ws() 函数会忽略非 NULL 的参数(第一个参数除外)。

关于连接列上的 PostgreSQL ILIKE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40954042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com