我目前正在应用程序中实现搜索功能,以获取用户输入并查询数据库以获得类似结果。我创建了以下数据库查询:
String proQuery = "SELECT * FROM " + DATABASE_TABLE + " WHERE "
+ KEY_NAME + " LIKE '%" + keyword +"%'";
显然,由于非常通用的sql语句,此查询有许多限制。例如,如果我开始在单词的中间键入内容,如果数据库中的行号较低,它将首先显示在列表中。
是否存在有助于提供比这种非常通用的sql语句更智能的搜索功能的库?我不确定哪些关键字可以描述我正在寻找的功能,是否有一些"搜索算法"对于android?
答案 0 :(得分:0)
也许UNION正是您所寻找的:
SELECT * FROM (
SELECT * FROM table_name WHERE keyname LIKE 'keyword%' ORDER BY keyname
) alias_t1
UNION ALL
SELECT * FROM (
SELECT * FROM table_name WHERE keyname LIKE '%keyword%' AND keyname NOT LIKE 'keyword%' ORDER BY keyname
) alias_t2;