查詢我想與{[email protected], [email protected]}
不區分大小寫數組包含Postgres的
做區分大小寫的查詢匹配{[email protected]}
是每個不夠:
select * from users where email @> '{[email protected]}'
但是,我無法找到一個方法來運行不區分大小寫包含對數組列的查詢。
This page沒有灌輸這種可能性的信心,因爲沒有提及區分大小寫。有什麼想法嗎?
查詢我想與{[email protected], [email protected]}
不區分大小寫數組包含Postgres的
做區分大小寫的查詢匹配{[email protected]}
是每個不夠:
select * from users where email @> '{[email protected]}'
但是,我無法找到一個方法來運行不區分大小寫包含對數組列的查詢。
This page沒有灌輸這種可能性的信心,因爲沒有提及區分大小寫。有什麼想法嗎?
我認爲你不能直接這樣做,因爲postgresql數組沒有區分大小寫的函數。最簡單的方法是將數組數據和查詢保持爲小寫。
這裏是類似的問題:Creating case-insensitive indexes on Postgres string array
一個可行的解決方案,但將是非常慢對於較大的表和陣列到UNNEST陣列和使用ILIKE(或任何其他情況下不敏感的比較):
select *
from (
select id, unnest(email) email_address
from user
) t
where email_address ILIKE '[email protected]'