mysql - 具有相同列的Mysql条件
问题描述
我有以下表结构。
表 - 信息
| day | hour | data |
| 2 | 3 | A |
| 3 | 5 | B |
| 4 | 1 | B |
现在我想编写一个查询来选择从第 2 小时第 3 天开始到第 4 小时第 1 天的数据。
所以我写了类似下面的查询。
select * from Info
where day >= 2 and hour >= 3 and day <= 4 and hour <= 1
但这里的问题是它也在比较第 2 天的时间和第 1 小时的时间。
谁能帮帮我?我被困在这里。
解决方案
如果day
并且hour
意味着他们的名字是什么,那么您可以通过将所有内容转换为小时来做到这一点:
select * from Info
where (day * 24 + hour) between (2 * 24 + 3) and (4 * 24 + 1)
更准确地说,条件应该是:
((day - 1) * 24 + hour) between ((2 - 1) * 24 + 3) and ((4 - 1) * 24 + 1)
但这并不影响结果。
请参阅演示。
结果:
| day | hour | data |
| --- | ---- | ---- |
| 2 | 3 | A |
| 3 | 5 | B |
| 4 | 1 | B |
推荐阅读
- python - 无法使用 httpclientlibrary 在 lambda 函数中发送电子邮件
- django - 在 Django 模板中渲染熊猫的数据框
- nuxt.js - Vercel 上的 NUXT SSR(现在是时代)。如何部署?
- swiftui - SwiftUI:如何初始化依赖于视图中另一个变量的变量
- linux - Docker 卷绑定时,Chown 权限被拒绝
- c# - ASP.NET MVC 模型数据未更新
- python-3.x - 删除字符串中两个特定单词之间的字母
- scala-breeze - 矩阵乘法:错误:方法 *:* 的参数太多
- kubernetes - 如何将文件/应用程序添加到持久卷以供我的 pod 读取
- java - 集群中 ServletContextListener 的单个实例