我就廢話不多說了,大家還是直接看代碼吧~
改前:
select * from 表名 where 字段名 like ||#{參數(shù)}||'%'
改后:
select *,regexp_matches(字段名, #{參數(shù)}) from 表名
補充:postgresql實現(xiàn)模糊查詢 正則表達式
因為數(shù)據(jù)庫的查詢操作比較單一,所以大部分的模糊查詢操作都需要手動編寫程序來實現(xiàn)。
postgresql提供有強大的正則表達式系統(tǒng),可以在數(shù)據(jù)庫級別實現(xiàn)模糊查詢。
正則表達式匹配操作符:
| 操作符 |
描述 |
例子 |
| ~ |
匹配正則表達式,大小寫相關(guān) |
'thomas' ~ '.*thomas.*' |
| ~* |
匹配正則表達式,大小寫無關(guān) |
'thomas' ~* '.*Thomas.*' |
| !~ |
不匹配正則表達式,大小寫相關(guān) |
'thomas' !~ '.*Thomas.*' |
| !~* |
不匹配正則表達式,大小寫無關(guān) |
'thomas' !~* '.*vadim.*' |
例如:
找出數(shù)據(jù)表account中所有用戶名包含baidu且不區(qū)分大小寫的用戶的信息。
select * from account where username ~* 'baidu';
使用正則表達式之后可以實現(xiàn)不區(qū)分大小寫的功能,并且大大減少了sql語句的長度。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- postgresql varchar字段regexp_replace正則替換操作
- postgresql 替換空格 換行和回車的操作
- PostgreSQL 正則表達式替換-使用變量方式
- postgresql 實現(xiàn)將字段為空的值替換為指定值