我試圖拆分字段(在某些分隔符處,在下面的示例中使用';')並將拆分結果插入表中。我想要做的是在下面的表格中說明。MySQL - 拆分字段並將結果插入列
注:絕不會有由分號分隔超過3個值(;)在第一行,但可以有少於3
mysql> SELECT * FROM new;
+-------+------+------+------+
| first | a | b | c |
+-------+------+------+------+
| a;b;c | NULL | NULL | NULL |
| d;e;f | NULL | NULL | NULL |
| g;h | NULL | NULL | NULL |
| i | NULL | NULL | NULL |
+-------+------+------+------+
查詢的結果應該
mysql> SELECT * FROM new;
+-------+------+------+------+
| first | a | b | c |
+-------+------+------+------+
| a;b;c | a | b | c |
| d;e;f | d | e | f |
| g;h | g | h | NULL |
| i | i | NULL | NULL |
+-------+------+------+------+
我一直試圖使用的查詢是(這個特殊的將只檢索第一個值)。
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(first, ';', 1), ';', -1) FROM new;
但是,這種方法不提供任何幫助時,分隔字符的數量少於3個,因爲它會返回它遇到的,而不是空或空字符串(「」)的第一個字符。
任何人有任何線索如何去做這件事?
乾杯
在第一列中總會有最多三個以逗號分隔的字段嗎? – radar 2014-12-04 15:37:54