mysql正则表达式 将字符串'1,2,3,4' 拆分为 '1','2','3','4'
时间: 2023-08-06 19:26:50 浏览: 26
你可以使用MySQL的内置函数REGEXP_REPLACE()和SUBSTRING_INDEX()来将字符串'1,2,3,4'拆分为'1'、'2'、'3'和'4'。
首先,使用REGEXP_REPLACE()函数将逗号替换为单引号和逗号之间的空格。这将在每个数字周围添加单引号,并为每个数字之间添加一个空格。然后,使用SUBSTRING_INDEX()函数将每个数字提取到单独的列中。
以下是实现这一操作的查询:
```
SELECT
SUBSTRING_INDEX(REGEXP_REPLACE('1,2,3,4', ',', "' , '"), ' ', 1) AS col1,
SUBSTRING_INDEX(SUBSTRING_INDEX(REGEXP_REPLACE('1,2,3,4', ',', "' , '"), ' ', 2), ' ', -1) AS col2,
SUBSTRING_INDEX(SUBSTRING_INDEX(REGEXP_REPLACE('1,2,3,4', ',', "' , '"), ' ', 3), ' ', -1) AS col3,
SUBSTRING_INDEX(SUBSTRING_INDEX(REGEXP_REPLACE('1,2,3,4', ',', "' , '"), ' ', 4), ' ', -1) AS col4;
```
这将返回以下结果:
```
+------+------+------+------+
| col1 | col2 | col3 | col4 |
+------+------+------+------+
| '1' | '2' | '3' | '4' |
+------+------+------+------+
```
这里的REGEXP_REPLACE()函数使用一个正则表达式,将逗号替换为单引号和逗号之间的空格。然后,每个SUBSTRING_INDEX()函数使用两个参数:字符串本身和空格。第三个参数指定要返回的子字符串的位置。