我想使用正则表达式分隔符在MySQL中拆分字符串。有什么办法可以做到吗?
我发现这篇博客文章解释了如何实现一个简单的分割字符串函数: mysql split string function
但是,我必须用两个替代字符拆分我的字符串,所以我想使用这个正则表达式:[ - ,]来分隔字符串。
以下是我拥有的表格以及我想要实现的目标:
| id | range |
|----|-------|
| 1 | 2,3,5 |
| 2 | 1-4 |
| 3 | 2 |
我想要做的是找到每个“范围”字段的最小值和最大值。 所以,我想得到:
第1行:第2行和第5行 第2行:第1行和第4行 第3行:2
任何提示都会非常感激!
答案 0 :(得分:2)
考虑到您的表名称为data
且range
中的值从最小值到最大值排序,是否可以?
SELECT id,
(0 + data.range) AS min,
GREATEST(
0 + SUBSTRING_INDEX(data.range, ',', -1),
0 + SUBSTRING_INDEX(data.range, '-', -1)
) AS max
FROM `data`
但是你应该考虑为Boris建议的范围创建一个新表,如果可以的话它会更清洁。