gpt4 book ai didi

android搜索多个关键字

转载 作者:太空狗 更新时间:2023-10-29 13:31:18 29 4
gpt4 key购买 nike

我的应用程序包含搜索功能,它将在数据库中搜索内容。我的搜索的弱点是,我只能使用一个标签进行搜索,例如我只能搜索“cat”,它会返回我的数据库中包含单词“cat”的内容,因为我使用的是 LIKE 在 select 语句期间查询。我如何使用多个标签进行搜索?例如“带黄球的猫”。因此,它将返回与插入的字符串相关的结果,如果数据库中不存在某些标签,它将忽略。为了更清楚地说明,我在我的数据库中创建了一个示例表 AboutCat。它包含 3 列,即 id、c_question 和 c_keyword。

id = 1

c_question = 如果我们拔猫的 mustache 会怎样?

c_keyword = 猫 mustache 拉

如果我使用 c_keyword 列中的任何关键字进行搜索,例如“cat”、“cat mustache”或“mustache pull”,它将显示 c_question。但是如果我搜索“cat pull”或“mustache cat”,它不会显示。那么,只要它匹配并且存在于 c_keyword 列中,我如何通过忽略单词的顺序来搜索它呢?下面是我的代码...问我是否我的解释不清楚..

btnWanita.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

results.clear();

if(txtWnta.getText().toString().matches(""))
{
Toast.makeText(WanitaActivity.this, "Sila masukkan kata kunci", Toast.LENGTH_SHORT).show();

}

else
{
OpenHelper helper = new OpenHelper(getApplicationContext());
database = helper.getWritableDatabase();

try{

String sql = "select * from " +
OpenHelper.DB_TABLE_WANITA + " where " + OpenHelper.KEY_WANITA +
" like " + "'%" + txtWnta.getText().toString() + "%';";
Cursor c = database.rawQuery(sql, null);

if(c!= null)
{
c.moveToFirst();
int soalanColumn = c.getColumnIndex(OpenHelper.MASALAH_WANITA);
int getId = c.getColumnIndex(OpenHelper.ID_WANITA);
if(c.isFirst())
{
do
{
idList.add(c.getLong(getId));
results.add(c.getString(soalanColumn));


}while(c.moveToNext());
}

adapter.updateList(results);
}

}

catch(SQLException e)
{
Log.v("caer ", e.toString());
}
}

我的搜索在这里...

String sql = "select * from " +
OpenHelper.DB_TABLE_WANITA + " where " + OpenHelper.KEY_WANITA +
" like " + "'%" + txtWnta.getText().toString() + "%';";

最佳答案

您需要将字符串拆分为单独的单词,然后动态构建 WHERE 子句以匹配每个单词。像这样:

String sql = 
"select * from "
+ OpenHelper.DB_TABLE_WANITA
+ " where "
+ OpenHelper.KEY_WANITA + " like " + "'%cat%'"
+ " or "
+ OpenHelper.KEY_WANITA + " like " + "'%mustache%'"
+ " or "
+ OpenHelper.KEY_WANITA + " like " + "'%pull%'"
+";"
;

关于android搜索多个关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15141681/

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