当前位置:  开发笔记 > 数据库 > 正文

在SQLite数据库中搜索文本 - Android

如何解决《在SQLite数据库中搜索文本-Android》经验,为你挑选了1个好方法。

我有一个包含6列的数据库,其中2列是文本格式.当用户输入字符串时,我想在2个文本列中搜索字符串并返回行.这是我提出的代码:

mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE, KEY_DATE}, 
                                        KEY_BODY + " LIKE '"+search_text+"%' OR "
                                      + KEY_TITLE + " LIKE '"+search_text+"%'" , 
                                        null, null, null,KEY_DATE_INT + " DESC");

我确信这可以转化为

Select KEY_ROWID, KEY_TITLE, KEY_DATE from DATABASE_TABLE where {(KEY_BODY LIKE 'search_text') OR (KEY_BODY LIKE 'search_text')}   

我遇到的问题是,这只搜索列的第一个单词.例如,如果列中的文本是"This is a test"并且搜索字符串是"test",则查询将不返回该行.如果搜索文本是"this",它将返回该行.

我做错了什么,是否有更好的方法在Android中的SQLite数据库中实现文本搜索.



1> NullPointerE..:

请试试

mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE, KEY_DATE}, 
                                            KEY_BODY + " LIKE '%"+search_text+"%' OR "
                                          + KEY_TITLE + " LIKE '%"+search_text+"%'" , 
                                            null, null, null,KEY_DATE_INT + " DESC");

我们的想法是,如果您希望搜索子字符串,那么您需要将其包含在内,%substring%然后您的子字符串将从整个字符串中匹配.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有