MySQL中计算文本类型区间列的中点值
MySQL文本类型数值区间的中点值计算方法
假设你的数据表名为your_table,存储区间的列名为range_col,可以通过以下SQL语句直接计算每个区间的中点值:
SELECT range_col, (CAST(SUBSTRING_INDEX(range_col, ' - ', 1) AS UNSIGNED) + CAST(SUBSTRING_INDEX(range_col, ' - ', -1) AS UNSIGNED)) / 2 AS mid_point FROM your_table;
关键步骤说明:
- 使用
SUBSTRING_INDEX函数拆分区间字符串:SUBSTRING_INDEX(range_col, ' - ', 1)提取区间的左边界数值(例如从"20 - 24"中取出"20")SUBSTRING_INDEX(range_col, ' - ', -1)提取区间的右边界数值(例如从"20 - 24"中取出"24")
- 通过
CAST(... AS UNSIGNED)将提取到的文本转换为无符号整数,保证数值运算的有效性 - 最终通过
(左边界数值 + 右边界数值) / 2计算出区间的中点值
如果你的区间分隔符不是' - '(比如没有空格),只需要调整SUBSTRING_INDEX里的分隔符参数即可。
内容的提问来源于stack exchange,提问作者Nabs
相关产品推荐
相关产品推荐

