MYSQL 字段按指标分隔符转换为数据
时间: 2024-02-05 17:13:49 浏览: 164
MySQL将一个字段中以逗号分隔的取出来形成新的字段实现
5星 · 资源好评率100%
可以使用 MySQL 中的内置函数 `SUBSTRING_INDEX()` 和 `CONVERT()` 来实现将字段按指定分隔符转换为数据。以下是一个示例:
假设有一个包含以下数据的表 `mytable`:
```
id | data
---|-------------------
1 | 100,200,300
2 | 50|75|100
```
现在我们想要将 `data` 字段按逗号或者竖线分隔符转换为数据。可以使用以下查询语句:
```
SELECT id, CONVERT(SUBSTRING_INDEX(data, ',', 1), UNSIGNED INTEGER) AS col1, CONVERT(SUBSTRING_INDEX(SUBSTRING_INDEX(data, ',', 2), ',', -1), UNSIGNED INTEGER) AS col2, CONVERT(SUBSTRING_INDEX(data, '|', 1), UNSIGNED INTEGER) AS col3, CONVERT(SUBSTRING_INDEX(SUBSTRING_INDEX(data, '|', 2), '|', -1), UNSIGNED INTEGER) AS col4 FROM mytable;
```
上述查询语句将 `data` 字段按照逗号和竖线分别进行了分隔,并将结果转换为整数类型的数据,存储在四个新的列 `col1`、`col2`、`col3` 和 `col4` 中。
查询结果如下:
```
id | col1 | col2 | col3 | col4
---|------|------|------|------
1 | 100 | 200 | NULL | NULL
2 | 50 | 75 | 50 | 75
```
注意,在上述示例中,我们使用了 `SUBSTRING_INDEX()` 函数两次来获取字段中的第一个和第二个元素。第一次使用 `SUBSTRING_INDEX(data, ',', 1)` 获取第一个元素,第二次使用 `SUBSTRING_INDEX(SUBSTRING_INDEX(data, ',', 2), ',', -1)` 获取第二个元素。这是因为在 MySQL 中,`SUBSTRING_INDEX()` 函数只能获取字符串中的第一个或最后一个元素,并不能获取中间的元素。因此,我们需要使用两次函数来获取中间的元素。
同时,为了确保转换的数据类型正确,我们使用了 `CONVERT()` 函数将结果转换为整数类型的数据。如果需要转换为其他数据类型,可以根据需要修改 `CONVERT()` 函数的参数。
阅读全文