区间查询,有没有优雅的写法?

yangyunzhao 2014-04-15 01:03:42
数据库中表格类似这样:

Level Start End
1 1 15
2 16 25
3 26 33

我需要查询22对应的Level是多少,希望查询到对应的Level是2,因为 22在16与25之间。
请问有没有什么比较好的sql语句,主要是效率问题。谢谢!!
...全文
200 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq2460857094 2014-04-18
  • 打赏
  • 举报
回复
不知道楼主想要多优雅的写法。这样够不够优雅? select level from 表名 where start<22 and end>22
ACMAIN_CHM 2014-04-16
  • 打赏
  • 举报
回复
select level from 数据库中表格 where Start<=22 order by Start desc limit 1 create index xxx on 数据库中表格(Start )
ermuzi 2014-04-15
  • 打赏
  • 举报
回复
SELECT * FROM TT WHERE 22 BETWEEN `STATR` AND `END`
WWWWA 2014-04-15
  • 打赏
  • 举报
回复
SELECT * FROM TT WHERE STATR<22 AND END>22
benluobo 2014-04-15
  • 打赏
  • 举报
回复
select max(level) from table where levelId <= end; 或者 select min(level) from table where levelId >= start;
benluobo 2014-04-15
  • 打赏
  • 举报
回复
如果你的level,start,end是递增的 select max(level) from table where levelId < end; 或者 select min(level) from table where levelId > end; 这个效率是很好的 在end上建立索引对查询更好

56,687

社区成员

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

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