Android 如何在SQLite数据库中执行容错名称搜索

Android 如何在SQLite数据库中执行容错名称搜索,android,sqlite,search,android-sqlite,Android,Sqlite,Search,Android Sqlite,我有一个4列的数据库 |ID|CATEGORY|NAME|NATION| 并且有一个搜索方法,只需选择一个名称,如SEARCHKEYWORD,即可返回搜索的项目, 但这不是很实用,因为关键字必须与名称相同才能找到某些内容 如何执行更高效的搜索,容忍关键字和存储项之间的微小差异 使用此查询选择您输入的内容 SELECT * FROM DBNAME WHERE NAME LIKE '%SEARCHKEYWORD%' 或者使用第一个字母 SELECT * FROM DBNAME WHERE NAM

我有一个4列的数据库

|ID|CATEGORY|NAME|NATION|
并且有一个搜索方法,只需选择一个
名称,如SEARCHKEYWORD
,即可返回搜索的项目, 但这不是很实用,因为关键字必须与名称相同才能找到某些内容


如何执行更高效的搜索,容忍关键字和存储项之间的微小差异

使用此查询选择您输入的内容

SELECT * FROM DBNAME WHERE NAME LIKE '%SEARCHKEYWORD%'
或者使用第一个字母

SELECT * FROM DBNAME WHERE NAME LIKE 'SEARCHKEYWORD%'
从最后

SELECT * FROM DBNAME WHERE NAME LIKE '%SEARCHKEYWORD'
使用:
从DBNAME中选择*其中较低的(名称),如“%SEARCHKEYWORD%”

并且始终使用小写的SEARCHKEYWORD。

如果使用以结尾和包含搜索,则查询将失去效率,因为无法使用索引,并且查询必须扫描表中的每一行。如果Android允许,SQLite还具有GLOB运算符。如果名称包含空格不起作用,例如名称Mustang GT、关键字Mustang GT。。。返回空查询。我相信这是因为案例不匹配。我编辑了答案。请尝试修改后的解决方案,并让我知道您的代码中缺少',因此我得到了错误,但如果名称包含空格不起作用,例如名称Mustang GT,关键字Mustang GT。。。返回空查询