0

使用下面的代码,我可以检查一行是否包含单个字符串(字符串 a),但我将如何检查一行是否等于任一字符串(字符串 a 或 b)?

public Cursor fetchMyList() {
        String[] columns = { KEY_ROWID, KEY_CATEGORY, KEY_SUMMARY,
                KEY_DESCRIPTION, KEY_EMAIL };
        String selection = "description=?";
        String a = "blue";
                String b = "red";

        String[] selectionArgs = { a };
               // String[] selectionArgs = { a , b}; ///tried this dont work!!
        Cursor cursor = null;
        try {
            cursor = database.query(DATABASE_TABLE, columns, selection,
                    selectionArgs, null, null, null);
        } catch (Exception e) {
            e.printStackTrace();
        }
        int numberOfRows = cursor.getCount();
        if (numberOfRows <= 0) {
            return cursor;
        }
        return cursor;
    }
4

1 回答 1

0

如果声明 2 个参数,则只能传递 2 个参数。这就是你想要的:

String selection = "description=? OR description=?"; // Select rows with either description
String[] selectionArgs = {a , b};

我强烈建议您检查SQL 语言

PS:不要抓Exception。你以后会后悔的。捕获特定的异常子项;在你的情况下你想赶上SQLException

PS2:使用Log而不是printStackTrace().

于 2013-01-23T18:42:59.207 回答