PostgreSQL: Case insensitive string comparison

后端 未结 6 1821
囚心锁ツ
囚心锁ツ 2020-12-04 16:34

Is there a simple ignore-case-comparison for PostgreSQL?

I want to replace:

SELECT id, user_name 
    FROM users 
        WHERE lower(email) IN (lowe         


        
6条回答
  •  无人及你
    2020-12-04 17:10

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

    ilike is similar to like but case insensitive. For escape character use replace()

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

    or you could create a function to escape text; for array of text use

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

提交回复
热议问题