當(dāng)前位置:首頁(yè) >  站長(zhǎng) >  數(shù)據(jù)庫(kù) >  正文

PostgreSQL regexp_matches替換like模糊查詢的操作

 2021-05-25 17:06  來(lái)源: 腳本之家   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過

這篇文章主要介紹了PostgreSQL regexp_matches替換like模糊查詢的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧!

我就廢話不多說(shuō)了,大家還是直接看代碼吧~

改前:

1select * from 表名 where 字段名 like ||#{參數(shù)}||'%'

改后:

1select *,regexp_matches(字段名, #{參數(shù)}) from 表名

補(bǔ)充:postgresql實(shí)現(xiàn)模糊查詢 正則表達(dá)式

因?yàn)閿?shù)據(jù)庫(kù)的查詢操作比較單一,所以大部分的模糊查詢操作都需要手動(dòng)編寫程序來(lái)實(shí)現(xiàn)。

postgresql提供有強(qiáng)大的正則表達(dá)式系統(tǒng),可以在數(shù)據(jù)庫(kù)級(jí)別實(shí)現(xiàn)模糊查詢。

正則表達(dá)式匹配操作符:

操作符描述例子

~匹配正則表達(dá)式,大小寫相關(guān)'thomas' ~ '.*thomas.*'

~*匹配正則表達(dá)式,大小寫無(wú)關(guān)'thomas' ~* '.*Thomas.*'

!~不匹配正則表達(dá)式,大小寫相關(guān)'thomas' !~ '.*Thomas.*'

!~*不匹配正則表達(dá)式,大小寫無(wú)關(guān)'thomas' !~* '.*vadim.*'

例如:

找出數(shù)據(jù)表account中所有用戶名包含baidu且不區(qū)分大小寫的用戶的信息。

1select * from account where username ~* 'baidu';

使用正則表達(dá)式之后可以實(shí)現(xiàn)不區(qū)分大小寫的功能,并且大大減少了sql語(yǔ)句的長(zhǎng)度。

文章來(lái)源:腳本之家

來(lái)源地址:https://www.jb51.net/article/204869.htm

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)文章

熱門排行

信息推薦