我们正在研究一种根据多个条件选择 1 行的方法。一个例子将阐明这一点。以下是我们的数据集的示例。
Name StartDate EndDate HoursBegin HoursEnd RowID
Test 1 11/24/2017 8/24/2018 121 1000 1382
Test 2 11/25/2018 8/24/2020 1001 2500 1383
Test 3 11/25/2020 8/24/2022 2501 4000 1384
我正在寻找一个查询,该查询将采用几个条件(日期和时间)并决定该条件适合哪一行。考虑以下 2 个示例。
- 最简单的情况:日期:2021 年 11 月 25 日,2600 小时。这应该会导致选择第三行,因为同一行满足两个条件。
- 第 2 种情况:日期:2018 年 11 月 26 日,时间 2600。这应该会导致再次选择第 3 行。我们的逻辑类似于按小时或日期。为此,我无法在 SELECT WHERE 语句中简单地执行 OR 操作,因为第二行将满足日期条件,而这不是我们想要返回的行。
这几天我一直在试图弄清楚如何做到这一点,但一想到它,我的大脑就卡住了。任何帮助将不胜感激。
最佳答案
为此,您需要使用 where 子句来过滤出您感兴趣的行。将 where 子句中的子句与 AND
连接起来,表示您希望所有子句都为 true有问题的行:
where startdate < '11/25/2021' and enddate > '11/25/2021' and
hoursbegin < '2600' and hoursend > '2600'
某些 SQL 平台有 Between 运算符
where '11/25/2021' between startdate and enddate and
'2600' between hoursbegin and hoursend
关于mysql 通过多个条件选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47439574/