MYSQL 字段按分隔符,一分多
时间: 2023-08-22 13:14:40 浏览: 74
如果你的 MySQL 字段按照分隔符进行了多个值的存储,那么可以考虑使用 MySQL 的字符串函数和子查询来将其拆分为多个字段。具体步骤如下:
1. 使用 `SUBSTRING_INDEX()` 函数将字段按照分隔符进行切割,例如:
```sql
SELECT SUBSTRING_INDEX('a,b,c,d', ',', 1) AS col1; -- 输出结果为 'a'
SELECT SUBSTRING_INDEX('a,b,c,d', ',', 2) AS col2; -- 输出结果为 'a,b'
SELECT SUBSTRING_INDEX('a,b,c,d', ',', 3) AS col3; -- 输出结果为 'a,b,c'
SELECT SUBSTRING_INDEX('a,b,c,d', ',', 4) AS col4; -- 输出结果为 'a,b,c,d'
```
2. 使用子查询将拆分后的结果插入到新表中,例如:
```sql
INSERT INTO new_table (col1, col2, col3, col4)
SELECT
SUBSTRING_INDEX(old_col, ',', 1) AS col1,
SUBSTRING_INDEX(SUBSTRING_INDEX(old_col, ',', 2), ',', -1) AS col2,
SUBSTRING_INDEX(SUBSTRING_INDEX(old_col, ',', 3), ',', -1) AS col3,
SUBSTRING_INDEX(SUBSTRING_INDEX(old_col, ',', 4), ',', -1) AS col4
FROM old_table;
```
这里使用 `SUBSTRING_INDEX()` 函数,将原始字段 `old_col` 按照逗号 `,` 进行切割,然后按照切割后的位置分别存入新表的不同字段中。
注意,这种方式需要你事先知道原始字段中最多有多少个值,才能正确地进行切割和插入。如果原始字段中的值数量不确定或经常变化,可能需要使用其他的方法来动态地解析和拆分。