gpt4 book ai didi

android - 使用 Android 搜索对话框搜索多个数据库列

转载 作者:行者123 更新时间:2023-11-29 14:53:59 25 4
gpt4 key购买 nike

我已经让 Android 搜索对话框正常工作,但我遇到的问题是我有一个 3 列的数据库表,我希望在其中搜索所有 3 列。以下方法仅对表的第 1 列执行搜索:

//--- GET RECORDS FOR SEARCH
public Cursor searchDB(String query) {
String[] allColumns = new String[]{ KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 };
return db.query(true, DB_TABLE, new String[] { KEY_ROWID,
KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 }, KEY_COLUMN1 + " LIKE" + "'%" + query + "%'", null, null, null, null, null);
}
//--- END Get Records for Search

所以我尝试像这样向查询中添加一个字符串数组:

//--- GET RECORDS FOR SEARCH
public Cursor searchDB(String query) {
String[] allColumns = new String[]{ KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 };
return db.query(true, DB_TABLE, new String[] { KEY_ROWID,
KEY_COLUMN1, KEY_COLUMN2, KEY_COLUMN3 }, allColumns + " LIKE" + "'%" + query + "%'", null, null, null, null, null);
}
//--- END Get Records for Search

但这会使应用程序崩溃。那么如何修改方法来搜索三列(Column1、Column2、Column3)呢?

最佳答案

您可以这样做(假设您希望所有行至少匹配一列):

public Cursor searchDB(String query) { 
return db.query(true, DB_TABLE, new String[] { KEY_ROWID, KEY_COLUMN1, KEY_COLUMN2,
KEY_COLUMN3 }, KEY_COLUMN1 + " LIKE" + "'%" + query + "%' OR " + KEY_COLUMN2 +
" LIKE" + "'%" + query + "%' OR " + KEY_COLUMN3 + " LIKE" + "'%" + query + "%'",
null, null, null, null, null);
}

关于android - 使用 Android 搜索对话框搜索多个数据库列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com