SELECT DISTINCT _id, Game_name, Book, Chapter, Verse_start, Verse_stop, Scripture
FROM Bible_Game WHERE God's Kingdom
我在sqlite select语句中有上面的代码,它给了我以下错误。
android.database.sqlite.SQLiteException: unrecognized token: "'s Kingdom": , while compiling: SELECT DISTINCT _id, Game_name, Book, Chapter, Verse_start, Verse_stop, Scripture FROM Bible_Game WHERE God's Kingdom
我该如何解决这个问题(如何在sqlite中使用转义字符?)
答案 0 :(得分:4)
你有两个问题。
首先,您的过滤条件(在WHERE之后)不正确。它必须将列与值进行比较。我猜你正在搜索Game_name等于短语上帝的王国的记录,这是正确的吗?
此外,文本字符串必须以单引号显示。必须通过将引号字符加倍来转义字符串中的任何内部单引号。
如果我对你的意图的假设是正确的,那么使用正确的SQL是:
SELECT DISTINCT _id, Game_name, Book, Chapter, Verse_start, Verse_stop, Scripture
FROM Bible_Game WHERE Game_name = 'God''s Kingdom'
答案 1 :(得分:2)
摆脱'
问题的最佳方法是通过Android中每个数据库方法提供的selectionArgs
对其进行转发:
Cursor result = db.rawQuery("SELECT DISTINCT _id, Game_name, Book, Chapter, " +
"Verse_start, Verse_stop, Scripture FROM Bible_Game WHERE Game_name=?",
new String[] { "God's Kingdom" });
结果
... WHERE Game_name='God''s Kingdom'