sqlite - 如何包含工作

时间:2014-09-30 20:15:47

标签: android sqlite

我在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);

这次在%附近有语法错误。

3 个答案:

答案 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 + "%" });