android E / SQLiteLog:(1)near"?":语法错误

时间:2017-05-25 13:08:45

标签: android android-sqlite

我正试图从SQLite数据库中获取数据。在开头代码就像下一个代码,它的工作就好了:

cursor = db.query("ADDITIVES",
                        new String[] {"ADDITIVE_ID", "ADDITIVE_NAME", "DANGER_LEVEL"},
                        "ADDITIVE_NAME = LIKE ?",
                        new String[] { "%" + nameAdditives[i] + "%" },
                        null, null, null);

但我需要在LIKE运算符之前对表中的数据使用lowerkase,我发现只能使用rawQuery方法。所以我重新编写了代码并立即使用了这个代码。

cursor = db.rawQuery("SELECT ADDITIVE_ID, ADDITIVE_NAME, DANGER_LEVEL FROM ADDITIVES WHERE LOWER(ADDITIVE_ID) = LIKE ?", new String[] { "%" + eAdditives[i].toLowerCase() + "%" });

我开始收到下一个错误:E / SQLiteLog:(1)接近"?":语法错误。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您必须删除等号(=)运算符:

cursor = db.rawQuery("SELECT ADDITIVE_ID, ADDITIVE_NAME, DANGER_LEVEL FROM ADDITIVES WHERE LOWER(ADDITIVE_ID) LIKE ?", new String[] { "%" + eAdditives[i].toLowerCase() + "%" });