SQLiteDatabase中的參數raw query函數綁定爲字符串,它對我造成問題。如何在SQLiteDatabase原始查詢綁定中設置數據類型?
實施例的查詢(結合):
SELECT ? < 68
回報:0
SELECT min(?, 68)
回報:68
這樣的結果是因爲50
綁定爲字符串和查詢看起來像SELECT '50' < 68 ;
它返回false
。
經過在運行時創建的複雜查詢,我必須使用SQLiteDatabase.rawQuery
。
如何將數據綁定爲整數?
我找到了一個解決方案:
SELECT CAST(? AS INTEGER) < 68 ;
但它看起來醜陋。有沒有其他方法?我在Android API中找不到任何適當的方法。
SQLiteDatabase.execSQL(sql,args)聲明的唯一字節[],String,Long和Double的javadoc在bindArgs中受支持。它有助於使用「長」而不是「整數」?一些代碼也減少了猜測:) –
Javadoc for'SQLiteDatabase.execSQL(sql,args)'說:'執行不是SELECT/INSERT/UPDATE/DELETE'的單個SQL語句。我需要SELECT。但問題在於使用不同於'String'的類型,不僅是Integer或Long。 – pawelzieba
哎呀,對不起,你是對的 - 它在全部大寫的第一句中都這麼說:( –