postgresql中COALESCE 函式技巧

2021-08-20 09:37:27 字數 505 閱讀 8939

場景:

存在乙個使用者白名單表,提供了此使用者的使用者名稱和地區資訊,判斷此使用者是否在此白名單表中。

如:姓名 白名單地區

張三 中國,美國

則可使用如下語句:

select

id,user,

area_list

from

t_white_user

where

user = #

and (

coalesce (area_list, '') like concat (

'%' ,#, '%'

)or area_list is

null

)limit 1

技巧點分析:

1、coalesce函式說明:返回其引數中第乙個非空表示式,這裡使用即 area_list

2、白名單地區為多個國家以逗號分隔,則使用like concat的方式,能查詢出某個國家是否被包含其中。

PostgreSQL中的索引

索引是一種快速查詢資料的方法,它記錄了表中一列或多列與其物理位置之間的對應關係。常用的索引有b tree,hash,gist及gin等。1 b tree索引適合處理等值查詢和範圍查詢。2 hash只適合處理簡單的等值查詢。3 gist支援很多不同的索引策略。4 gin反轉索引,可以處理包含多個鍵的值...

postgresql中設定預設編碼

postgresql有兩個預設模板template0和template1,建立資料庫預設是以template1作為模板,兩個模板的區別是,如果以template0作為模板,可以自定義編碼,如下 create database db template template0問題似乎變得很明朗,想要改變po...

PostgreSQL中的chkpass模組

目錄 文件用途 詳細資訊 文件用途 chkpass模組使用了乙個名為chkpass的資料型別,此型別適用於儲存加密的口令。詳細資訊 使用chkpass模組後,每個口令在輸入的時候就自動的被轉換為加密的形式,而且總是以加密的形式儲存。進行比較時,可簡單地與明文口令比較,比較函式會先對明文口令進行加密。...