從逗號分隔字段提取多個值
如何在 mysql 中從存儲為逗號分隔值(例如“1,2,3,4,5,6”)的字段中分別提取這些值?
解決方案
可以使用 mysql 內置函數 substring_index() 將逗號分隔的值轉換為多行,具體步驟如下:
- 將逗號分隔的值作為第一個參數傳遞給 substring_index() 函數。
- 將逗號作為第二個參數傳遞,表示分隔符。
- 將 1 作為第三個參數,指示要提取第一個值。
例如,以下查詢將從逗號分隔的字段中提取前三個值:
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 | +------+
登錄后復制