如何在mysql中使用互斥BETWEEN子句?

Aks*_*iya 2 php mysql between

我有一个 php 变量。我想检查它是否位于 mysql 表任何行的两列值之间。但我不想将该变量与表的确切值匹配。即,独占 BETWEEN 子句。如果有人知道答案,请举例说明。谢谢。这是我的代码。

$var = '15:00:00';


//Mysql Table (datatype of columns are TIME)

          first         last
row1      13:00:00      15:00:00
row2      17:00:00      19:00:00
Run Code Online (Sandbox Code Playgroud)

spe*_*593 11

MySQL 中没有“互斥 BETWEEN”运算符。

表达方式:

  a BETWEEN b AND c
Run Code Online (Sandbox Code Playgroud)

实际上只是简写,相当于:

  ( a >= b AND a <= c )
Run Code Online (Sandbox Code Playgroud)

如果这不是您想要的条件,您可以使用不同的比较运算符:

  ( a > b AND a < c )
Run Code Online (Sandbox Code Playgroud)

如果您希望(需要?)获得与此相同的结果,但使用 BETWEEN 运算符,您可以使用某些条件的奇怪组合:

  ( a BETWEEN b AND c AND a NOT IN (b,c) )
Run Code Online (Sandbox Code Playgroud)

就我个人而言,我认为如果避免使用 SQL 会更容易理解BETWEEN


有多个查询可以检查给定值是否与表中的一行或多行“匹配”。例如:

  SELECT 1 AS `matched`
    FROM mytable t
   WHERE t.first < ?
     AND t.last  > ? 
    LIMIT 1
Run Code Online (Sandbox Code Playgroud)

如果有匹配的行,此查询将返回一行;如果没有匹配的行,则返回一个空集。