欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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ù)量級增大后,sql執(zhí)行速度會越來越慢,但是業(yè)務(wù)一定要保留該功能,且頻繁調(diào)用;

處理方案:

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

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

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

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

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

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

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

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

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

當(dāng)進(jìn)行模糊匹配時(shí),先對傳入?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ù)保持相反,并同步更新,索引級別可達(dá)range

type索引類型:

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

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

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

總結(jié)

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

相關(guān)文章

  • Mysql外鍵約束的創(chuàng)建與刪除的使用

    Mysql外鍵約束的創(chuàng)建與刪除的使用

    本文主要介紹了Mysql外鍵約束的創(chuàng)建與刪除的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解如何使用DockerHub官方的MySQL鏡像

    詳解如何使用DockerHub官方的MySQL鏡像

    MySQL是一個(gè)廣泛使用的開源關(guān)系型數(shù)據(jù)庫,那如何獲取Mysql Docker鏡像?下面通過這篇文章來一起看看如何使用DockerHub官方的MySQL鏡像,有需要的朋友們可以參考借鑒。
    2016-12-12
  • MySql事務(wù)無法回滾的原因有哪些

    MySql事務(wù)無法回滾的原因有哪些

    使用MySQL時(shí),如果發(fā)現(xiàn)事務(wù)無法回滾,但Hibernate、Spring、JDBC等配置又沒有明顯問題,到底是什么原因,下面與大家分享下
    2014-07-07
  • 深入sql數(shù)據(jù)連接時(shí)的一些問題分析

    深入sql數(shù)據(jù)連接時(shí)的一些問題分析

    本篇文章是對關(guān)于sql數(shù)據(jù)連接時(shí)的一些問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 詳解MySQL數(shù)據(jù)類型DECIMAL(N,M)中N和M分別表示的含義

    詳解MySQL數(shù)據(jù)類型DECIMAL(N,M)中N和M分別表示的含義

    關(guān)于MySQL數(shù)據(jù)類型decimal中n和m分別表示什么含義?本文就此問題作了簡單論述,并創(chuàng)建相關(guān)表進(jìn)行驗(yàn)證,需要的朋友可以了解下。
    2017-10-10
  • MySQL存儲過程輸入?yún)?shù)(in),輸出參數(shù)(out),輸入輸出參數(shù)(inout)

    MySQL存儲過程輸入?yún)?shù)(in),輸出參數(shù)(out),輸入輸出參數(shù)(inout)

    這篇文章主要介紹了MySQL存儲過程輸入?yún)?shù)(in),輸出參數(shù)(out),輸入輸出參數(shù)(inout),存儲過程就是一組SQL語句集,功能強(qiáng)大,可以實(shí)現(xiàn)一些比較復(fù)雜的邏輯功能,類似于JAVA語言中的方法;Python里面的函數(shù)
    2022-07-07
  • MySQL刪除表數(shù)據(jù)與MySQL清空表命令的3種方法淺析

    MySQL刪除表數(shù)據(jù)與MySQL清空表命令的3種方法淺析

    刪除現(xiàn)有MySQL表非常容易,但是刪除任何現(xiàn)有的表時(shí)要非常小心,因?yàn)閯h除表后丟失的數(shù)據(jù)將無法恢復(fù),下面這篇文章主要給大家介紹了關(guān)于MySQL刪除表數(shù)據(jù)與MySQL清空表命令的3種方法的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • JMeter對MySQL數(shù)據(jù)庫進(jìn)行壓力測試的實(shí)現(xiàn)步驟

    JMeter對MySQL數(shù)據(jù)庫進(jìn)行壓力測試的實(shí)現(xiàn)步驟

    本文主要介紹了JMeter對MySQL數(shù)據(jù)庫進(jìn)行壓力測試的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Mysql存儲引擎InnoDB和Myisam的六大區(qū)別

    Mysql存儲引擎InnoDB和Myisam的六大區(qū)別

    這篇文章主要介紹了Mysql存儲引擎InnoDB和Myisam的六大區(qū)別,本文從構(gòu)成上、事務(wù)處理、SQL操作、自動ID、表行數(shù)等方面講解了它的區(qū)別,需要的朋友可以參考下
    2015-02-02
  • 一篇文章看懂MySQL主從復(fù)制與讀寫分離

    一篇文章看懂MySQL主從復(fù)制與讀寫分離

    在實(shí)際的生產(chǎn)環(huán)境中,由單臺Mysql作為獨(dú)立的數(shù)據(jù)庫是完全不能滿足實(shí)際需求的,一般都是通過主從復(fù)制的方式來同步數(shù)據(jù),再通過讀寫分離(來提升數(shù)據(jù)庫的并發(fā)負(fù)載能力,這篇文章主要給大家介紹了關(guān)于MySQL主從復(fù)制與讀寫分離的相關(guān)資料,需要的朋友可以參考下
    2021-11-11

最新評論