我在SQL方面没有太多经验,现在尝试从android调用SQL时出现语法错误:
select _id from inAd where Name contains ?
说包含附近有一个语法错误。 但是,如果我使用“=”而不是“contains”,它可以正常工作。
有谁知道问题是什么?w
现在听从你的建议,我试过了:
cursor = helper.getReadableDatabase().rawQuery(
"select _id from inAd where Name like ?",
new String[] { str2 });
但无济于事。
现在也尝试过:
cursor = helper.getReadableDatabase().rawQuery(
"select _id from inAd where Name like ?",
new String[] { "%<str2>%" });
同样的问题。
cursor = helper.getReadableDatabase().rawQuery(
"select _id from '"+inAd+" where Name like '%"+str2+"%'",
null);
这次在%附近有语法错误。
答案 0 :(得分:1)
尝试
select _id from inAd where Name like '%<Your String>%'
答案 1 :(得分:1)
&#39;含有&#39;不是SQL语法的一部分。正如@Kristy指定的那样,您可以使用LIKE运算符或&#39; =&#39;。
看看是否有效:
selectionArgs = new String[] { "%" + str2 + "%" };
Cursor c = db.rawQuery("select _id from inAd where Name LIKE ?, selectionArgs);
答案 2 :(得分:1)
使用LIKE时,必须在模式的开头和结尾使用通配符:
cursor = helper.getReadableDatabase().rawQuery(
"select _id from inAd where Name like '%' || ? || '%'",
new String[] { str2 });
或:
cursor = helper.getReadableDatabase().rawQuery(
"select _id from inAd where Name like ?",
new String[] { "%" + str2 + "%" });