MySql逗號分割的字段數(shù)據(jù)分解為多行代碼示例
在 MySQL 中,你可以使用函數(shù) REPLACE 和 SUBSTRING_INDEX 來將一行逗號分隔的數(shù)據(jù)分解為多行。
例如,假設你有一個表,其中包含一列 items,該列包含逗號分隔的字符串,如下所示:
+----+---------------------+ | id | items | +----+---------------------+ | 1 | item1,item2,item3 | | 2 | item4,item5 | | 3 | item6 | +----+---------------------+
你可以使用以下查詢來將該表中的每一行數(shù)據(jù)分解為多行:
SELECT id, SUBSTRING_INDEX(SUBSTRING_INDEX(items, ',', n), ',', -1) AS item FROM my_table, (SELECT @rownum := @rownum + 1 AS n FROM (SELECT @rownum := 0) r, my_table) x WHERE n <= (LENGTH(items) - LENGTH(REPLACE(items, ',', '')) + 1);
該查詢會返回如下所示的結果:
+----+-------+ | id | item | +----+-------+ | 1 | item1 | | 1 | item2 | | 1 | item3 | | 2 | item4 | | 2 | item5 | | 3 | item6 | +----+-------+
附:mysql一行數(shù)據(jù)全部分解為多行
可以使用 MySQL 的 REPLACE 函數(shù)來實現(xiàn)這一目的。例如,假設你有一個名為 data
的表,其中包含一個名為 text
的字段,你希望將該字段中的每一行分解為多行。你可以使用以下 SQL 語句實現(xiàn)此目的:
UPDATE data SET text = REPLACE(text, '\n', '\n');
在這里,\n
表示換行符。
要將所有行都分解為多行,你可以使用以下語句:
SELECT REPLACE(text, '\n', '\n') as text FROM data;
這將在查詢結果中顯示分解為多行的文本。
總結
到此這篇關于MySql逗號分割的字段數(shù)據(jù)分解為多行的文章就介紹到這了,更多相關MySql逗號分割字段分解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解MySQL數(shù)據(jù)庫優(yōu)化的八種方式(經(jīng)典必看)
關于數(shù)據(jù)庫優(yōu)化,網(wǎng)上有不少資料和方法,但是不少質量參差不齊,有些總結的不夠到位,內容冗雜。今天給大家分享一篇文章關于mysql數(shù)據(jù)庫優(yōu)化的八種方式,非常經(jīng)典,需要的的朋友參考下2017-03-03詳解MySQL子查詢(嵌套查詢)、聯(lián)結表、組合查詢
這篇文章主要介紹了MySQL子查詢(嵌套查詢)、聯(lián)結表、組合查詢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03mysql使用GROUP BY分組實現(xiàn)取前N條記錄的方法
這篇文章主要介紹了mysql使用GROUP BY分組實現(xiàn)取前N條記錄的方法,結合實例形式較為詳細的分析了mysql中GROUP BY分組的相關使用技巧,需要的朋友可以參考下2016-06-06MYSQL中有關SUM字段按條件統(tǒng)計使用IF函數(shù)(case)問題
MYSQL中SUM字段按條件統(tǒng)計使用IF函數(shù),具體實現(xiàn)代碼如下,感興趣的朋友不要錯過2014-01-01