2015-06-27 18 views
-1

我有一個PHP變量。我想檢查它是否位於mysql表的任意一行的兩列的值之間。但我不希望將該變量與表的確切值匹配。即獨家BETWEEN條款。如果有人知道答案,請用一個例子來解釋。謝謝。這是我的代碼。如何在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 
+1

爲什麼不能用'<' and '>'? – Vatev

回答

1

你可以用between條款做,如果該值是在與一些中間

SELECT `column1`,`column1`,`column1` 
    FROM table_name 
    WHERE $var > `first` AND $var < `second` 

這樣的事情只會工作,第一和第二

0

沒有「獨家BETWEEN」 MySQL中的操作符。

表達:

a BETWEEN b AND c 

真的只是簡寫,等價於:

(a >= b AND a <= c) 

如果這不是你想要的情況下,你可以使用不同的比較操作:

(a > b AND a < c) 

如果你希望(需要?)來實現等同於結果,但使用BETWEEN操作,您可以使用的一些條件,一個奇怪的組合:

(a BETWEEN b AND c AND a NOT IN (b,c)) 

就個人而言,我認爲SQL更容易理解,如果你避免使用BETWEEN


有幾個查詢可以檢查給定值是否「匹配」表中的一個或多個行。例如:

SELECT 1 AS `matched` 
    FROM mytable t 
    WHERE t.first < ? 
    AND t.last > ? 
    LIMIT 1 

此查詢將返回一行,如果有一個匹配行,並返回一個空集,如果有不匹配的行。