输入一个数值,返回符合该数值范围的数据

Banio 2018-10-30 09:44:11
标题可能没解释清楚
日期 温度
10.20 10-20
10.21 10-15

我输入17 可以返回 如下这条内容
日期 温度
10.20 10-20

请问想达到这个效果 sql语句怎么写 谢谢
...全文
143 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
AHUA1001 2018-11-05
  • 打赏
  • 举报
回复
SELECT
*
FROM
T
WHERE 17 BETWEEN CAST(
SUBSTRING_INDEX('温度', '-', 1) AS SIGNED INTEGER
)
AND CAST(
SUBSTRING_INDEX('温度', '-', - 1) AS SIGNED INTEGER
);

yc_39 2018-10-30
  • 打赏
  • 举报
回复
稍微研究了下,发现有解决方案

SELECT * FROM T
WHERE CAST(SUBSTRING_INDEX(`温度`, '-', 1) AS SIGNED INTEGER) < 17
  AND CAST(SUBSTRING_INDEX(`温度`, '-', -1) AS SIGNED INTEGER) > 17
yc_39 2018-10-30
  • 打赏
  • 举报
回复
建议把温度这个栏位拆开成 最高温度 和 最低温度 两个栏位,这样就只需判断 x>最低温度且x<最高温度 就行了 如果说你只想根据一个栏位的话,那就只好自己写个split函数,拆开成两个数再来判断

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧