PostgreSQL regexp_matches替換like模糊查詢的操作
我就廢話不多說瞭,大傢還是直接看代碼吧~
改前:
select * from 表名 where 字段名 like ||#{參數}||'%'
改後:
select *,regexp_matches(字段名, #{參數}) from 表名
補充:postgresql實現模糊查詢 正則表達式
因為數據庫的查詢操作比較單一,所以大部分的模糊查詢操作都需要手動編寫程序來實現。
postgresql提供有強大的正則表達式系統,可以在數據庫級別實現模糊查詢。
正則表達式匹配操作符:
操作符 | 描述 | 例子 |
---|---|---|
~ | 匹配正則表達式,大小寫相關 | ‘thomas’ ~ ‘.*thomas.*’ |
~* | 匹配正則表達式,大小寫無關 | ‘thomas’ ~* ‘.*Thomas.*’ |
!~ | 不匹配正則表達式,大小寫相關 | ‘thomas’ !~ ‘.*Thomas.*’ |
!~* | 不匹配正則表達式,大小寫無關 | ‘thomas’ !~* ‘.*vadim.*’ |
例如:
找出數據表account中所有用戶名包含baidu且不區分大小寫的用戶的信息。
select * from account where username ~* 'baidu';
使用正則表達式之後可以實現不區分大小寫的功能,並且大大減少瞭sql語句的長度。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- postgresql~*符號的含義及用法說明
- JavaScript高級程序設計之基本引用類型
- Python基礎之dict和set的使用詳解
- 雙11大促 德國Amilera玻尿酸安瓶 美白抗衰 成分黨必入
- PostgreSQL 字符串處理與日期處理操作