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);
該查詢會返回如下所示的結(jié)果:
+----+-------+ | 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;
這將在查詢結(jié)果中顯示分解為多行的文本。
總結(jié)
到此這篇關于MySql逗號分割的字段數(shù)據(jù)分解為多行的文章就介紹到這了,更多相關MySql逗號分割字段分解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL派生表合并優(yōu)化的原理和實現(xiàn)過程
本文從一個案例出發(fā)梳理了MySQL派生表合并優(yōu)化的流程實現(xiàn)和優(yōu)化原理,并對優(yōu)化前后同一條SQL語句在代碼層面的類實例映射關系進行了對比,這篇文章主要介紹了MySQL派生表合并優(yōu)化的原理和實現(xiàn),需要的朋友可以參考下2024-07-07
MySQL 隔離數(shù)據(jù)列和前綴索引的使用總結(jié)
正確地創(chuàng)建和使用索引對于查詢性能十分重要。由于存在很多種特殊場景的優(yōu)化和行為,因此有很多種方式去有效選擇和使用索引。因此,決定如何使用索引這一項技能是需要經(jīng)驗和時間的積累去培養(yǎng)的。以下會介紹一些如何有效使用索引的方法。2021-05-05
MySQL數(shù)據(jù)導入導出的三種辦法總結(jié)
當我們需要切換數(shù)據(jù)庫或備份數(shù)據(jù)時,導入和導出數(shù)據(jù)庫是一個常見的操作,下面這篇文章主要給大家介紹了關于MySQL數(shù)據(jù)導入導出的三種辦法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05
MacOS 下安裝 MySQL8.0 登陸 MySQL的方法
這篇文章主要介紹了MacOS 下安裝 MySQL8.0 登陸 MySQL 的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05
MySQL5.1主從同步出現(xiàn)Relay log read failure錯誤解決方法
這篇文章主要介紹了MySQL5.1主從同步出現(xiàn)Relay log read failure錯誤解決方法,需要的朋友可以參考下2014-07-07

