2

我想选择与传递的etacategoryclass、 属性匹配但不包含传递的 use1 和 use2 属性的行,所以我写了这段代码

public Cursor getData(String use1, String use2, String eta, String category,
            String class) {
        try {
            Cursor c;
                c = mDb.rawQuery(
                        "SELECT * FROM dbtable "
                                + "WHERE Use NOT LIKE ? AND Use NOT LIKE ? AND Eta LIKE ? AND Language LIKE ? ORDER BY Name",
                        new String[] { "%" + use1 + "%", "%" + use2 + "%", "%" + eta + "%",
                                "%" + language + "%" });
            if (c != null) {
                c.moveToNext();
            }
            return c;

        } catch (SQLException mSQLException) {
            Log.e(TAG, "getDataCar >>" + mSQLException.toString());
            throw mSQLException;
        }

    }

不幸的是,它不起作用,并且不排除包含属性use1use2的行,如果我删除两个 NOT LIKE 条件,则工作正常......所以两个 NOT LIKE 条件存在语法错误。

4

2 回答 2

1
WHERE Use NOT LIKE ? AND Use NOT LIKE (NOTHING HERE) AND Eta LIKE ? AND Language LIKE ? ORDER BY Name
于 2012-12-11T17:46:43.243 回答
0

已解决,问题是由数据库列中的空格引起的......语法是正确的。

于 2012-12-11T18:12:26.393 回答