2013-01-15 18 views
1

在我的數據庫表中有兩個字段名爲salary_to和salary_from.Now在我的網站的前端用戶可以在輸入字段中輸入工資,比如說20000.Now我想在數據庫中執行檢查如果任何一行有薪水和薪水的「20000」值。 我想要的算法中看起來像這樣使用運算符之間的Sql選擇

SELECT all ROW where salaryto is less than 20000 and salaryfrom is greater than 20000 

我可以使用運營商之間執行這種filterring的或我只是AVE用>,<運營商呢? 假設我爲我的項目使用mysql數據庫。

回答

0

between運算符是INCLUSIVE這意味着它包含START和END值。而< >是排他性的。

SELECT * 
FROM tableName 
WHERE salaryto < 20000 and salaryfrom > 20000 

所以在此處獲取的行是與19999及以下salaryto值和20001及以上salaryfrom值,假設它增加1

0

您可以使用此:

SELECT * FROM yourTable WHERE 2000 BETWEEN salary_to AND salary_from 

但這推薦:

SELECT * FROM yourTable WHERE (salary_to < 2000) and (salary_from > 2000) 
+0

第一個陳述成功運行並在我的程序中給出正確的輸出,但我不明白你爲什麼說第二個陳述是推薦的? –

+0

我總是儘量讓代碼容易理解,大多數人都知道第二種方法,所以我建議使用它。 –

相關問題