postgresql中COALESCE()函數技巧

場景:
存在一個用戶白名單表,提供了此用戶的用戶名和地區信息,判斷此用戶是否在此白名單表中。
如:web

姓名 白名單地區
張三 中國,美國sql

則可以使用以下語句:svg

SELECT ID, user, area_list FROM t_white_user WHERE user = #{ user, jdbcType = VARCHAR } AND ( COALESCE (area_list, '') LIKE CONCAT ( '%' ,#{ country, jdbcType = VARCHAR }, '%' ) OR area_list IS NULL ) LIMIT 1

技巧點分析:
一、coalesce函數說明:返回其參數中第一個非空表達式,這裏使用即 area_list
二、白名單地區爲多個國家以逗號分隔,則使用like concat的方式,能查詢出某個國家是否被包含其中。函數