我试图拆分字段(在某些分隔符处,在下面的示例中使用';')并将拆分结果插入表中。我想要做的是在下面的表格中说明。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个,因为它会返回它遇到的,而不是空或空字符串(“”)的第一个字符。
任何人有任何线索如何去做这件事?
干杯
2014-12-04
VisarBLD
+0
在第一列中总会有最多三个以逗号分隔的字段吗? –
2014-12-04 15:37:54