分離逗號分隔字段的值
假設(shè)您有一個mysql字段包含一個以逗號分隔的值列表,例如“1,2,3,4,5,6”。要分別提取這些值,請遵循以下步驟:
使用 substring_index() 函數(shù)
mysql提供了 substring_index() 函數(shù),它可以將字符串中的子字符串提取到指定的分隔符。
將逗號分隔的值轉(zhuǎn)換為多行
使用 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)
登錄后復(fù)制
此查詢將返回以下結(jié)果:
+------+ | val | +------+ | 1 | | 2 | | 3 | +------+
登錄后復(fù)制
重復(fù) 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>
登錄后復(fù)制