gpt4 book ai didi

sql - PostgreSQL:不区分大小写的字符串比较

转载 作者:行者123 更新时间:2023-11-29 11:06:22 26 4
gpt4 key购买 nike

PostgreSQL 是否有简单的忽略大小写比较?

我要替换:

SELECT id, user_name 
FROM users
WHERE lower(email) IN (lower('adamB@a.com'), lower('eveA@b.com'));

用类似的东西:

SELECT id, user_name 
FROM users
WHERE email IGNORE_CASE_IN ('adamB@a.com', 'eveA@b.com');

likeilike 运算符适用于单个值(例如 like 'adamB@a.com'),但不适用于集合。

最佳答案

select * 
where email ilike 'me@example.com'

ilike 类似于like 但不区分大小写。对于转义字符,使用 replace()

where email ilike replace(replace(replace($1, '~', '~~'), '%', '~%'), '_', '~_') escape '~'

或者您可以创建一个函数来转义文本;用于文本数组

where email ilike any(array['adamB@a.com', 'eveA@b.com'])

关于sql - PostgreSQL:不区分大小写的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4482206/

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