最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql模糊查詢結(jié)果取反問題

 更新時(shí)間:2023年09月01日 08:37:43   作者:qq_35327536  
這篇文章主要介紹了mysql模糊查詢結(jié)果取反問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql模糊查詢結(jié)果取反

問題描述

1、表結(jié)構(gòu):

 

2、只要包含3這種類型的都不能查詢。 

解決方式

1、模糊查詢出所有包含3這種類型的數(shù)據(jù),在使用not in這種方式:

SELECT * FROM system_account WHERE id NOT IN (SELECT id FROM system_account WHERE identity_type LIKE "%3%");

這種方式如果類型中有13、23這種帶3的類型就需要修改模糊條件。

2、使用正則匹配方式:

SELECT * FROM `system_account` WHERE identity_type REGEXP "^([1,2,4,5,6,7,8,9]{1}\,?)*[1,2,4,5,6,7,8,9]{1}$";

這種方式只要在這種中排除3這種類型就可以了,但是沒添加一種類型就需要修改一次sql語句。

同事問的這個(gè)問題,第一反應(yīng)是模糊查詢?nèi)》?,所以感覺很有意思就記錄一下。

最終這種方案也沒有用上,同事把需求弄反了。

模糊查詢可以使用 not like 這種查詢方式 平時(shí)從來沒有用過也沒看見過 所以沒想到這種方法

SELECT * FROM admin_produce_order WHERE product_code LIKE 'CP211%' AND po_come_factory NOT LIKE "%羅西%"

mysql模糊匹配后匹配優(yōu)化

線上存在業(yè)務(wù)代碼,需要模糊匹配且進(jìn)行后匹配

select * from test where id like "%1231"

優(yōu)化過程

mysql的后模糊匹配是不走索引的,所以數(shù)量級(jí)增大后,sql執(zhí)行速度會(huì)越來越慢,但是業(yè)務(wù)一定要保留該功能,且頻繁調(diào)用;

處理方案:

1. 使用表中已存在的其他列索引

如果查詢的表存在其他列索引,可以直接使用模糊匹配查詢完整的主鍵信息,再進(jìn)行業(yè)務(wù)查詢

select id from test where id like "%1231"
select * from test where id = #{id}

該方案簡單迅速,查詢索引級(jí)別一般可以達(dá)到index

2. 使用緩存記錄模糊匹配列所有數(shù)據(jù)

先進(jìn)行緩存記錄所有模糊列數(shù)據(jù),再經(jīng)過緩存進(jìn)行數(shù)據(jù)匹配,最后進(jìn)行業(yè)務(wù)查詢。

該方案需要保證緩存可靠,并且及時(shí)更新

3. 數(shù)據(jù)庫增加相反列,并設(shè)置對(duì)應(yīng)索引

例如,原模糊列為id,值為123,相反列起名id_reverse,值則為321

當(dāng)進(jìn)行模糊匹配時(shí),先對(duì)傳入?yún)?shù)進(jìn)行卻反,123取反為321,最后用相反列進(jìn)行匹配

select * from test where id_reverse like "321%"

如果需要保證該條件同時(shí)滿足前匹配和后匹配

select * from test where id like "123%" or id_reverse like "321%"

該方案需要保證相反列和模糊列數(shù)據(jù)保持相反,并同步更新,索引級(jí)別可達(dá)range

type索引類型:

ststem > const > eq_ref > ref > range > index > all

優(yōu)化級(jí)別從左往右遞減,沒有索引的一般為’all’,需要對(duì)type進(jìn)行優(yōu)化前提是有索引。

其中’system’和’const’只是理想型,實(shí)際只能達(dá)到’ref’和’range’。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

镇江市| 禹城市| 原平市| 白玉县| 砀山县| 喜德县| 东山县| 凯里市| 临汾市| 嵊州市| 兴文县| 丹凤县| 灯塔市| 河间市| 屏边| 囊谦县| 西乌珠穆沁旗| 南平市| 塔河县| 本溪市| 麦盖提县| 辽宁省| 南召县| 靖宇县| 长白| 南宫市| 瑞丽市| 桂平市| 南靖县| 合肥市| 和顺县| 甘孜县| 黎川县| 通道| 安阳县| 九江市| 临潭县| 兴仁县| 阆中市| 望奎县| 简阳市|