2014-06-10 34 views
1

大家好我有分貝之間使用查詢兩個DOUBLE值如何在SQLite中使用BETWEEN和DOUBLE值進行查詢?

這是我的表:

db.execSQL("CREATE TABLE Task (" 
        + "id smallint(6) NOT NULL," 
        + "project_id smallint(6) NOT NULL," 
        + "add_date varchar(15) NOT NULL," 
        + "geo_lat double NOT NULL," 
        + "geo_long double NOT NULL," 
        + "additional_info TEXT NULL" + ");"); 

我想告訴所有最近的任務和我當前的查詢是:

SELECT * FROM Task WHERE geo_lat BETWEEN " + lat_top + " AND " + lat_bot + " AND geo_long" + " BETWEEN " + long_top + " AND " + long_bot 

我不知道這是否是錯的,我發現它在這個論壇的某個地方。這個查詢沒有返回任何內容......應該怎麼做?

回答

1

只要改變頂部和底部的順序查詢:

SELECT * FROM Task WHERE geo_lat 
    BETWEEN " + lat_bot+ " AND " + lat_top + " 
    AND geo_long" + " 
    BETWEEN " + long_bot + " AND " + long_top 

你的樣品填充的查詢會是這樣:

SELECT * FROM TASK WHERE 
(GEO_LAT BETWEEN 12.01 AND 12.50) 
AND 
(GEO_LONG BETWEEN 81.10 AND 91.20) 
+0

哇...這是顯而易見的:)謝謝! ! – Mattiah85

+0

@ Mattiah85:很高興幫助:) –

2

a BETWEEN b AND ca >= b AND a <= c相同。

因此,您必須確保兩個值中較小的一個出現在AND之前。

相關問題