mysql将包含逗号的字段拆分
时间: 2023-05-28 09:03:55 浏览: 338
mysql批量增加字段.txt
可以使用 MySQL 内置的函数 `SUBSTRING_INDEX` 来拆分包含逗号的字段。
假设有一个名为 `table1` 的表,其中有一个名为 `column1` 的字段,包含逗号分隔的字符串,如下所示:
```
+----+-------------------+
| id | column1 |
+----+-------------------+
| 1 | apple,orange,banana|
| 2 | car,bus,train |
| 3 | cat,dog,fish |
+----+-------------------+
```
现在需要将 `column1` 字段按照逗号进行拆分,并分别存储到三个新的字段中,可以使用以下 SQL 语句:
```
ALTER TABLE table1 ADD column2 VARCHAR(50);
ALTER TABLE table1 ADD column3 VARCHAR(50);
ALTER TABLE table1 ADD column4 VARCHAR(50);
UPDATE table1 SET
column2 = SUBSTRING_INDEX(column1, ',', 1),
column3 = SUBSTRING_INDEX(SUBSTRING_INDEX(column1, ',', 2), ',', -1),
column4 = SUBSTRING_INDEX(SUBSTRING_INDEX(column1, ',', 3), ',', -1);
```
执行上述 SQL 语句后,`table1` 表将变为如下所示:
```
+----+-------------------+--------+-------+-------+
| id | column1 | column2| column3| column4|
+----+-------------------+--------+-------+-------+
| 1 | apple,orange,banana| apple | orange| banana|
| 2 | car,bus,train | car | bus | train |
| 3 | cat,dog,fish | cat | dog | fish |
+----+-------------------+--------+-------+-------+
```
其中,`SUBSTRING_INDEX` 函数的作用是返回一个字符串中某个分隔符之前或之后的所有字符,第一个参数为要处理的字符串,第二个参数为分隔符,第三个参数为返回的子字符串的索引,如果为正数,则返回从开头到第 n 个分隔符之前的子字符串;如果为负数,则返回从末尾到第 n 个分隔符之后的子字符串。
阅读全文