我在channel
表中提交了mysql
,其中包含以下数据:
DAHDI/69-1
DAHDI/68-1
DAHDI/20-1
DAHDI/1-1
DAHDI/6-1
DAHDI/67-1
DAHDI/14-1
DAHDI/4-1
DAHDI/19-1
DAHDI/20-1
从上面的数据我想在正斜杠之后和-1之前获取数值。
预期结果:
仅从DAHDI/69-1
到69
。
请注意,DAHDI
和1
是channel
提交的固定值。
已编辑:我预计最多100行包含数百万行的最大数值。
答案 0 :(得分:1)
您必须在字符串中找到字符索引,然后执行简单计算以提取值。查询应该类似于:
SELECT 0 + substring(channel,
locate('/', channel) + 1,
locate('-', channel) - locate('/', channel) - 1) AS myvalue
FROM table
ORDER BY myvalue DESC
LIMIT 100
SUBSTRING(str,pos,len)
:
从字符串str返回一个子字符串len个字符,从位置pos开始。
LOCATE(substr,str)
:
返回字符串str。
0 +
技巧强制MySql将字符串转换为数字值。