2016-01-25 33 views
4

我想從mysql中的字符串中提取子字符串。該字符串包含多個以逗號分隔的子字符串(',')。我需要使用任何mysql函數來提取這些子字符串。使用分隔符提取Mysql子字符串

例如:

Table Name: Product 
----------------------------------- 
item_code name colors 
----------------------------------- 
102  ball  red,yellow,green 
104  balloon yellow,orange,red 

我要選擇顏色的場,並提取子如紅色,黃色和綠色的用逗號分隔的。

+0

ITEM_CODE,名稱和顏色表產品領域值爲 item_code名稱顏色 102 ball red,green,blue –

回答

6

這可能重複:Split value from one field to two

不幸的是,MySQL不設有分割字符串函數。 如上面的鏈接表示有User-defined Split function

一個更詳細的版本,以獲取數據可以是以下幾點:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) as colorfirst, 
     SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) as colorsecond 
.... 
     SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', n), ',', -1) as colornth 
    FROM product; 
+0

如果字符串可能包含多個子字符串,我們將在通用代碼中執行什麼操作,而不是逐個提取?沒有固定數量的子字符串,它可能會有所不同 –

+0

在這種情況下,您可能必須創建一個存儲過程,並使用'for'循環遍歷由''標記的字符串的長度,'' –

+1

_above code_ * *適用於我**,當我在循環存儲過程中使用它時。 –

0

在第64行檢查使用SPLIT_STR功能here的69

相關問題