2012-06-03 61 views
2
Cursor cursor = db.rawQuery("SELECT id,lastname FROM people WHERE lastname='John Kenedy'; ",null); 

是否正確使用比較String?如果不是,如何才能比較數據庫中的String值?Android的SQLite查詢字符串

+0

你可以使用「=」直字符串比較,也就是'LIKE','GLOB','REGEXP'和'MATCH'(如果你使用的是自由文本搜索表/ fts3) - 你的**用例**是什麼?哦,順便說一下,[SQLiteStatements](http://developer.android.com/reference/android/database/sqlite/SQLiteStatement.html)改進了性能 - *不*調整帶參數的'rawQuery' - 僅僅阻止注入。 – Jens

回答

7

爲了獲得更好的性能,您應該使用rawQuery方法和selectionArgs,這種方法對於直接向語句添加數據更快,更安全。因此,嘗試像這樣

Cursor cursor = db.rawQuery("SELECT id,lastname FROM people WHERE lastname = ?; ", new String[] {"John Kenedy"});