1
我想通過使用BETWEEN運算符的Android比較sqlite中的緯度和經度值。問題是這個值總是被比較,就像它是一個字符串一樣,我不知道如何將它作爲一個數字進行比較。我發現這是因爲使用查詢「select * from database orderby latitude」返回一個不按數字順序排列的列表。 KEY_LAT和KEY_LONG我已經存儲爲TEXT和REAL,並且獲得相同的輸出。請告訴我你需要什麼信息。在SQLite中比較Double NOT字符串
下面是該查詢:
double high_lat = curr_lat + 100.0;
double high_long = curr_longitude + 100.0;
double low_lat = curr_lat - 100.0;
double low_long = curr_longitude - 100.0;
Cursor cursor = db.query(TABLE_NAME, new String[] {KEY_ID, KEY_NAME, KEY_ADDR, KEY_LAT, KEY_LONG}, select,
new String[]
{KEY_LAT + " BETWEEN " + low_lat + " AND "
+ high_lat + " AND " + KEY_LONG + " BETWEEN " + low_long + " AND "
+ high_long},
null, null, null);
你確定你的「選擇由緯度從數據庫中以便*」返回其有序既不數字或字母列表?我不認爲這是可能的。 – 2013-04-24 21:23:29
這應該工作,如果這些值實際上存儲爲REAL。我會建議實際的問題在於你存儲數據的方式,因爲如果你實際上將數值存儲爲數字,它將起作用。 – antlersoft 2013-04-24 21:25:23
是的antlersoft我現在將值存儲爲雙打,現在他們正確地排序。我想主要的問題雖然與聲明的選擇部分有關。我使用了一個rawQuery,現在它工作。請問你或某人請舉例說明如何使用具有多個選擇的Android db.query(table,columns [],selection,selection args [])語句來形成我的查詢?謝謝!!! – user2317198 2013-04-25 02:04:02