我正试图从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)接近"?":语法错误。我做错了什么?
答案 0 :(得分:2)
您必须删除等号(=)运算符:
cursor = db.rawQuery("SELECT ADDITIVE_ID, ADDITIVE_NAME, DANGER_LEVEL FROM ADDITIVES WHERE LOWER(ADDITIVE_ID) LIKE ?", new String[] { "%" + eAdditives[i].toLowerCase() + "%" });