我想向我的数据库提供一个查询,该查询将搜索一个字符串是否存在于 Column1 或 Column2 中,并且仅当另一个字符串值存在于 Column3 中时才显示它。
这是我在 2 列中搜索的工作代码:
mCursor = db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_TIME, KEY_TITLE, KEY_COLOR, KEY_BODY},
KEY_BODY + " like '%" + inputText + "%' OR " + KEY_TITLE + " like '%" + inputText + "%'" , null,
null, null, KEY_TIME + " DESC", null);
虽然我不知道如何将第三列添加到搜索中。
我试过这个:
mCursor = db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_TIME, KEY_TITLE, KEY_COLOR, KEY_BODY},
KEY_BODY + " like '%" + inputText + "%' OR " + KEY_TITLE + " like '%" + inputText + "%' AND " + KEY_COLOR + "like '%" + colorvalue + "%'" , null,
null, null, KEY_TIME + " DESC", null);
但 AND 仅适用于“TITLE”列,而不适用于两者。我在网上搜索过,但我无法弄明白。
非常感谢您的帮助!
最佳答案
为此你需要使用括号。
mCursor = db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_TIME, KEY_TITLE, KEY_COLOR, KEY_BODY},
"(" + KEY_BODY + " like '%" + inputText + "%' OR " + KEY_TITLE + " like '%" + inputText + "%') AND (" + KEY_COLOR + " like '%" + colorvalue + "%')" , null,
null, null, KEY_TIME + " DESC", null);
希望这对您有所帮助。
关于Android SQLite Search with OR, AND, in multiple database columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16482798/