2013-04-25 80 views
0

我想從我的數據庫拉出經度和緯度值(存儲爲十進制(10,6))一個範圍內的兩個值之間,但由於某些原因的一個值不返回任何結果。SQL BETWEEN語句不返回任何結果?

這裏是我的查詢:

SELECT * FROM `location` WHERE location_latitude BETWEEN 53.76200 AND 53.765000 AND location_longitude BETWEEN -2.710000 AND -2.720000 

當我剛剛查詢的緯度,我得到的結果回來的罰款。這個問題似乎只與經度有關。我對這一切還是比較陌生的,但是它能否與經度值之前的負號相關?

在此先感謝!

+0

location_latitude和location_longitude的數據類型??? – Hackerman 2013-04-25 19:06:27

回答

5

變化的BETWEEN的參數的順序:

AND location_longitude BETWEEN -2.720000 AND -2.710000 

由於-2.72小於-2.71

+0

你能爲此證明一下嗎? – Kermit 2013-04-25 19:09:47

+1

@FreshPrinceOfSO沒有 – Lamak 2013-04-25 19:10:41

+1

很棒,有10個代表。 – Kermit 2013-04-25 19:10:55

1

location_longitude BETWEEN -2.710000 AND -2.720000返回true當且僅當-2.71 < =經度< = -2.72。表達式總是返回false,因爲-2.72 < -2.71。切換這兩個值。

BETWEEN documentation for MySQL.

+1

儘管你是正確的,BETWEEN在SQL-Server和MySQL中都是這樣工作的,並且它應該工作(通過標準),問題用'[tag:mysql]'標記,而不是'[tag:sql -server]'。也許你可以提供一個到mysql文檔的鏈接。 – 2013-04-25 19:13:21

+0

@ypercube感謝您的支持。 – 2013-04-25 19:14:58