2012-06-03 21 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"});