mysql按多个条件选择Row

时间:2017-11-22 16:26:54

标签: mysql sql select multiple-conditions

我们正在研究一种基于多种条件选择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

我正在寻找一个需要几个条件(日期和小时)的查询,并决定条件适合哪一行。考虑以下两个例子。

  1. 最简单的情况:日期:11/25/2021和2600小时。这将导致选择第3行,因为同一行满足两个条件。
  2. 第二种情况:日期:11/26/2018和2600时。这应该会导致再次选择第3行。我们的逻辑类似于小时或日期。为此,我不能简单地在SELECT WHERE语句中执行OR,因为第二行将满足Date条件,而不是我们想要返回的行。
  3. 我一直试图弄清楚如何在几天内做到这一点并且在思考它时大脑冻结了。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

为此,您需要使用where子句来过滤掉您感兴趣的行。将where子句中的子句与AND相关联,表示您希望所有这些子句对于相关行都为真:

where startdate < '11/25/2021' and enddate > '11/25/2021' and
      hoursbegin < '2600' and hoursend > '2600'

某些sql平台有一个运算符

where '11/25/2021' between startdate and enddate and
      '2600' between hoursbegin and hoursend