SQLite "LIKE" 语法没有带来任何结果

SQLite "LIKE" syntax didn't bring any results

我尝试使用以下查询从 sqliteDB 中读取数据:

public ArrayList<ReminderNote> getAllRegexItems(String author) {
 ArrayList<ReminderNote> results = new ArrayList<>();

    Cursor cursor = this.getReadableDatabase().query(
            REMINDER_NOTE_TABLE,
            new String[]{KEY_ID, KEY_NOTE, KEY_AUTHOR}, Strings.isEmpty(author) ? null : KEY_AUTHOR + " = ?",
            Strings.isEmpty(author) ? null : new String[]{"%" + author + "%"}, null, null, null);

可以像我一样使用%吗?

如果 author 为 null 或为空,我希望获取所有结果。

不幸的是,即使我事先添加了这样的实体,我得到的结果集还是空的。

并且我在执行时可以看到非空结果集:

Cursor cursor = this.getReadableDatabase().query(
            REMINDER_NOTE_TABLE,
            new String[]{KEY_ID, KEY_NOTE, KEY_AUTHOR}, null, null, null, null, null);

您正在使用 KEY_AUTHOR + " = ?",您应该使用 KEY_AUTHOR + " LIKE ?"

Cursor cursor = this.getReadableDatabase().query(
        REMINDER_NOTE_TABLE,
        new String[]{KEY_ID, KEY_NOTE, KEY_AUTHOR},
        Strings.isEmpty(author) ? null : KEY_AUTHOR + " LIKE ?",
        Strings.isEmpty(author) ? null : new String[]{"%" + author + "%"},
        null, null, null);