如何將MySQL字段中的逗號分隔值轉換為多行?

如何將MySQL字段中的逗號分隔值轉換為多行?

分離逗號分隔字段的值

假設您有一個mysql字段包含一個以逗號分隔的值列表,例如“1,2,3,4,5,6”。要分別提取這些值,請遵循以下步驟:

使用 substring_index() 函數

mysql提供了 substring_index() 函數,它可以將字符串中的子字符串提取到指定的分隔符。

將逗號分隔的值轉換為多行

使用 substring_index() 將逗號分隔的值拆分為多行,分隔字符為逗號。

select substring_index('1,2,3,4,5,6', ',', 1) as val union all select substring_index(substring_index('1,2,3,4,5,6', ',', 2), ',', -1) union all select substring_index(substring_index('1,2,3,4,5,6', ',', 3), ',', -1)

此查詢將返回以下結果:

+------+ | val  | +------+ | 1    | | 2    | | 3    | +------+

重復 union all 語句以提取所需的所有值。

實際測試

您可以使用以下查詢來測試此方法:

mysql> SELECT SUBSTRING_INDEX('1,2,3,4,5,6', ',', 1) AS val     -> UNION ALL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('1,2,3,4,5,6', ',', 2), ',', -1)     -> UNION ALL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('1,2,3,4,5,6', ',', 3), ',', -1)     -> ; +------+ | val  | +------+ | 1    | | 2    | | 3    | +------+ 3 rows in set (0.00 sec)  mysql>

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享