mysql根據(jù)逗號將一行數(shù)據(jù)拆分成多行數(shù)據(jù)
分隔效果
-- 分隔前
1,2,3,4
-- 分隔后
1
2
3
4
分隔命令行
SELECT substring_index(substring_index('1,2,3,4',',', b.help_topic_id + 1), ',', -1) result FROM mysql.help_topic b where b.help_topic_id < (LENGTH('1,2,3,4') - LENGTH(REPLACE('1,2,3,4', ',', '')) + 1);
命令行解釋
help_topic本身是Mysql一個幫助解釋注釋表,用于解釋Mysql各種專有名詞,由于這張表數(shù)據(jù)ID是從0順序增加的,方便我們用于計數(shù),但是8.0.17版本的只有686條數(shù)據(jù),超過這個數(shù)字,我們就需要己自定義一張表
可以用做計數(shù)的臨時表,查詢的語句只會用help_topic計數(shù),超出的部分其實都是臟數(shù)據(jù)
b.help_topic_id < 獲取分隔后的總行數(shù)
b.help_topic_id < (LENGTH('1,2,3,4') - LENGTH(REPLACE('1,2,3,4', ',', '')) + 1)
這個語句其實是一個遍歷,help_topic_id 從0開始遞增到
按照順序截取,先截取第 n 個分隔符之前的所有字符,再截取字符串最后一位
1? ??—— 1
1,2??—— 2
1,2,3?—— 3
1,2,3,4?—— 4
mysql.help_topic 無權(quán)限處理辦法
mysql.help_topic 的作用是對 SUBSTRING_INDEX 函數(shù)出來的數(shù)據(jù)(也就是按照分割符分割出來的)數(shù)據(jù)連接起來做笛卡爾積。
如果 mysql.help_topic 沒有權(quán)限,可以自己創(chuàng)建一張臨時表,用來與要查詢的表連接查詢。
獲取該字段最多可以分割成為幾個字符串:
SELECT MAX(LENGTH(a.`name`) - LENGTH(REPLACE(a.`name`, ',', '' )) + 1) FROM `test` a;
創(chuàng)建臨時表,并給臨時表添加數(shù)據(jù):
注意:
- 臨時表必須有一列從 0 或者 1 開始的自增數(shù)據(jù)
- 臨時表表名隨意,字段可以只有一個
- 臨時表示的數(shù)據(jù)量必須比 MAX(LENGTH(a.name) - LENGTH(REPLACE(a.name, ',', '' )) + 1) 的值大
涉及函數(shù)
substring_index(str,delim,count)
參數(shù)名 | 解釋 |
---|---|
str | 需要拆分的字符串 |
delim | 分隔符,通過某字符進(jìn)行拆分 |
count | 當(dāng) count 為正數(shù),取第 n 個分隔符之前的所有字符; 當(dāng) count 為負(fù)數(shù),取倒數(shù)第 n 個分隔符之后的所有字符。 |
replace( str, from_str, to_str)
參數(shù)名 | 解釋 |
---|---|
str | 需要進(jìn)行替換的字符串 |
from_str | 需要被替換的字符串 |
to_str | 需要替換的字符串 |
length(str) 獲取字符串長度
到此這篇關(guān)于mysql根據(jù)逗號將一行數(shù)據(jù)拆分成多行數(shù)據(jù)的文章就介紹到這了,更多相關(guān)mysql根據(jù)逗號拆分內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql如何通過當(dāng)前排序字段獲取相鄰數(shù)據(jù)項
這篇文章主要介紹了mysql如何通過當(dāng)前排序字段獲取相鄰數(shù)據(jù)項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05詳解MySQL子查詢(嵌套查詢)、聯(lián)結(jié)表、組合查詢
這篇文章主要介紹了MySQL子查詢(嵌套查詢)、聯(lián)結(jié)表、組合查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03mysql根據(jù)json字段內(nèi)容作為查詢條件(包括json數(shù)組)檢索數(shù)據(jù)
本文主要介紹了mysql根據(jù)json字段內(nèi)容作為查詢條件(包括json數(shù)組)檢索數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02