使用正则表达式分隔符拆分MySQL中的字段值?

时间:2012-02-10 11:14:10

标签: mysql

我想使用正则表达式分隔符在MySQL中拆分字符串。有什么办法可以做到吗?

我发现这篇博客文章解释了如何实现一个简单的分割字符串函数: mysql split string function

但是,我必须用两个替代字符拆分我的字符串,所以我想使用这个正则表达式:[ - ,]来分隔字符串。

以下是我拥有的表格以及我想要实现的目标:

| id | range |
|----|-------|
|  1 | 2,3,5 |
|  2 | 1-4   |
|  3 | 2     |

我想要做的是找到每个“范围”字段的最小值和最大值。 所以,我想得到:

第1行:第2行和第5行 第2行:第1行和第4行 第3行:2

任何提示都会非常感激!

1 个答案:

答案 0 :(得分:2)

考虑到您的表名称为datarange中的值从最小值到最大值排序,是否可以?

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建议的范围创建一个新表,如果可以的话它会更清洁。