sqlite select语句中的错误

时间:2012-04-03 13:38:00

标签: android database sqlite

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中使用转义字符?)

2 个答案:

答案 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'
相关问题