2013-07-22 74 views
0

我試圖執行以下查詢:Android的SQLite的rawQuery「WHERE」不工作

try { 

     if (db != null){ 
     cursor = db.rawQuery("SELECT fp_id, COUNT(*) FROM rssi WHERE (mac = '20:aa:4b:d3:db:d6' and (rssi > -72 and rssi < -64)) OR (mac = '08:86:3b:f1:da:18' and (rssi > -63 and rssi < -55)) group by fp_id",null); 
     } 
     int cursorSize = cursor.getCount(); 
     DatabaseUtils.dumpCursor(cursor); 
    } 

我得到的CURSORSIZE = 0,這顯然意味着,rawQuery()不起作用。我通過刪除WHERE子句來測試它,它工作正常。在哪裏它不起作用。任何幫助表示讚賞...

+1

如果沒有引發異常,那麼語法是有效的。因此,如果有0個結果,則指示是清楚的:根據定義的表達式將數據過濾掉*。所以爲什麼*?如果沒有看到*實際數據*(和類型)和*預期結果*,就不可能提供詳細的解釋。 – user2246674

+0

沒有發生任何異常。我在SQLiteStudio上測試了上述查詢在目標數據庫上,它工作正常,並返回預期的結果,但在這裏它從來沒有工作... –

+0

什麼是rssi?它是表格中的表格還是列表?這很令人困惑,因爲您將它用於「FROM rssi」和「rssi> -72」等。 – Oleksiy

回答

1

儘管在SQLite數據庫中爲表和它的一個列使用相同的名稱是可以接受的,但這不適用於android。因此,更改表或其字段的名稱可以解決問題。注意:升級數據庫非常重要(增加版本號)....