首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >范围值之间的MySql查询(单个记录)

范围值之间的MySql查询(单个记录)
EN

Stack Overflow用户
提问于 2019-06-11 13:24:22
回答 1查看 87关注 0票数 0

我的数据库表中有以下数据

代码语言:javascript
复制
id       time      time_slots
1        time1     09:00-10:30,12:15-14:00,16:30-19:30
2        time2     14:00-15:15,18:30-19:30
3        time3     08:30-10:00,13:00-15:00,15:30-18:00
4        time4     13:00-15:00
5        time5     15:00-16:00,17:30-18:30

现在,如果当前时间是13:30,那么我需要上面表中的3条记录(id为1,3,4)。最终结果将是:

代码语言:javascript
复制
id
1
3
4

请帮助我以最好的方式找到解决方案。你的帮助对我很有帮助。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-06-11 13:42:42

我认为你可以优化你的表结构,否则当表中的记录数量很大时,获取数据会花费很多时间。

试着实现下面的结构,它会很简单。

Time_table

代码语言:javascript
复制
id       time      
1        time1    
2        time2     
3        time3     
4        time4     
5        time5

Time_slot_table

代码语言:javascript
复制
id   time_table_id(fk)  start_time  end_time
1    1                   09::00      10:30
2    1                   12:15       14:00
3    1                   16:30       19:30
4    2                   14:15       15:15
5    2                   18:30       19:30

现在运行下面的查询来获取范围内的数据

代码语言:javascript
复制
SELECT time 
FROM Time_table 
JOIN Time_slot_table ON Time_slot_table.time_table_id = Time_table.id 
WHERE current_time BETWEEN Time_slot_table.start_time AND Time_slot_table.end_time
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56536995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档