我有一个 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)
如果有匹配的行,此查询将返回一行;如果没有匹配的行,则返回一个空集。
| 归档时间: |
|
| 查看次数: |
14774 次 |
| 最近记录: |