亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql拆分字符串作為查詢條件的示例代碼

 更新時間:2022年07月06日 08:25:01   作者:Jame!  
本文主要介紹了mysql拆分字符串作為查詢條件的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

有個群友問一個問題

這表的ancestors列存放的是所有的祖先節(jié)點,以,分隔

例如我查詢dept_id為103的所有祖先節(jié)點,現(xiàn)在我只有一個dept_id該怎么查

然后我去網(wǎng)上找到這樣一個神奇的sql,改改表名就成了下面的這樣

	SELECT
		substring_index( substring_index( a.ancestors, ',', b.help_topic_id + 1 ), ',',- 1 ) AS shareholder 
	FROM
		sys_dept a
		JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.ancestors ) - length( REPLACE ( a.ancestors, ',', '' ) ) + 1 ) 
	WHERE
	dept_id = 103 

嗯,沒錯結(jié)果出來了,然后我就很好奇,什么原理,一個個來看

mysql.help_topic

這個是一個mysql自帶的幫助解釋注釋表,查詢結(jié)果如下

id從0開始,我這個版本最大id到584,版本不同應(yīng)該id最大值也不一樣,這個表的作用一會說

REPLACE

這個函數(shù)應(yīng)該都知道吧,替換字符用的

LENGHT

獲取字符串的長度

substring_index

查分字符串,三個參數(shù),要拆分的字符串,根據(jù)拆分的字符,從第幾個開始

如果最后的那個參數(shù)為正數(shù)則從左開始數(shù),然后獲取對應(yīng)下標左邊的所有字符

如果為負數(shù),則從右邊開始數(shù),獲取對應(yīng)下標右邊的所有字符串,這個就不演示了

分析

先來看第一段

( length( a.ancestors ) - length( REPLACE ( a.ancestors, ',', '' ) ) + 1 )

我們假設(shè)當前數(shù)據(jù)的ancestors值為 0,100,101 那么第一個length(a.ancestors)的值就是9 減去后面的一段

length( REPLACE ( a.ancestors, ',', '' ) ) 因為我們假設(shè)的值里面有兩個 , 所以length為7 最后在加1 那么這段值為 3

和前面的 join on條件能查出的數(shù)據(jù)也就是mysql.help_topic這個表中所有id小于3的數(shù)據(jù),也就是id為0,1,2的三條數(shù)據(jù)

那么現(xiàn)在先來看看這樣查詢的結(jié)果是啥

那么我們假設(shè)現(xiàn)在是第一行,mysql.help_topic表中的help_topic_id為0

substring_index( substring_index( a.ancestors, ',', b.help_topic_id + 1 ), ',',- 1 )

最里面的substring_index 拆分后為0,因為沒有能在拆分的了所以外面的substring_index返回的也是0

第二行help_topic_id為1的時候獲取結(jié)果為0,100

然后執(zhí)行外層的substring_index 根據(jù),拆分,值為-1 所以從右邊找一位,獲取的值就是100

第三行結(jié)果為0,100,101,外層substring_index 執(zhí)行后結(jié)果為101

....只能心中大喊牛逼

那么現(xiàn)在知道mysql.help_topic這個表的作用了嗎?就是用來對拆分出的數(shù)據(jù)分行,專業(yè)點叫笛卡爾積 (真的不懂..)

這種方法也有缺點:就是拆出的行數(shù)不能大于mysql.help_topic這個表的數(shù)據(jù)條數(shù)

到此這篇關(guān)于mysql拆分字符串作為查詢條件的示例代碼的文章就介紹到這了,更多相關(guān)mysql拆分字符串查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用MySQL Slow Log來解決MySQL CPU占用高的問題

    使用MySQL Slow Log來解決MySQL CPU占用高的問題

    在Linux VPS系統(tǒng)上有時候會發(fā)現(xiàn)MySQL占用CPU高,導(dǎo)致系統(tǒng)的負載比較高。這種情況很可能是某個SQL語句執(zhí)行的時間太長導(dǎo)致的。優(yōu)化一下這個SQL語句或者優(yōu)化一下這個SQL引用的某個表的索引一般能解決問題
    2013-03-03
  • MySQ實現(xiàn)XA事務(wù)的具體使用

    MySQ實現(xiàn)XA事務(wù)的具體使用

    XA事務(wù)是一種分布式事務(wù)處理協(xié)議,本文主要介紹了MySQ實現(xiàn)XA事務(wù)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Mysql 5.7.18安裝方法及啟動MySQL服務(wù)的過程詳解

    Mysql 5.7.18安裝方法及啟動MySQL服務(wù)的過程詳解

    這篇文章主要介紹了Mysql 5.7.18安裝方法及啟動MySQL服務(wù)的過程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05
  • mysql innodb的監(jiān)控(系統(tǒng)層,數(shù)據(jù)庫層)

    mysql innodb的監(jiān)控(系統(tǒng)層,數(shù)據(jù)庫層)

    這篇文章主要介紹了mysql innodb的監(jiān)控(系統(tǒng)層,數(shù)據(jù)庫層)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Windows實現(xiàn)通過cmd命令行啟動mysql

    Windows實現(xiàn)通過cmd命令行啟動mysql

    介紹了通過Windows命令行啟動MySQL的詳細步驟,包括普通啟動和使用管理員權(quán)限的方法,以及如何登錄和查詢數(shù)據(jù),主要步驟包括修改環(huán)境變量、使用net start命令、確保以管理員身份運行CMD,以及使用MySQL命令行工具進行數(shù)據(jù)庫操作
    2024-10-10
  • MySQL和HBase的使用對比

    MySQL和HBase的使用對比

    MySQL和HBase是兩種不同的數(shù)據(jù)庫,MySQL是一個關(guān)系型數(shù)據(jù)庫,支持事務(wù),而HBase是一個NoSQL數(shù)據(jù)庫,支持海量數(shù)據(jù)的讀寫,MySQL適用于OLTP業(yè)務(wù),而HBase適用于OLAP業(yè)務(wù)
    2024-12-12
  • MySQL主從同步機制與同步延時問題追查過程

    MySQL主從同步機制與同步延時問題追查過程

    這篇文章主要給大家介紹了關(guān)于MySQL主從同步機制與同步延時問題追查的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • mysql如何修改表結(jié)構(gòu)(alter table),多列/多字段

    mysql如何修改表結(jié)構(gòu)(alter table),多列/多字段

    這篇文章主要介紹了mysql如何修改表結(jié)構(gòu)(alter table),多列/多字段問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • MySQL觸發(fā)器使用過程詳解

    MySQL觸發(fā)器使用過程詳解

    觸發(fā)器,就是一種特殊的存儲過程。觸發(fā)器和存儲過程一樣是一個能夠完成特定功能、存儲在數(shù)據(jù)庫服務(wù)器上的SQL片段。本文將通過簡單的實力介紹一下觸發(fā)器的操作,需要的可以參考一下
    2023-03-03
  • SQL 聚合、分組和排序

    SQL 聚合、分組和排序

    這篇文章主要介紹了SQL 聚合、分組和排序,文章圍繞SQL 聚合、分組、排序的相關(guān)資料展開具體內(nèi)容,需要的朋友可以參考一下
    2021-11-11

最新評論