最近在看短信搜索功能,发现 MmsSmsProvider.java 中的SQL语句不能很好的搜索现象,不知道是什么原因,部分代码:String searchString = uri.getQueryParameter("pattern");
String query = String.format("SELECT _id, index_text, source_id, table_to_use, offsets(words) FROM words WHERE words MATCH '%s*' LIMIT 50;", searchString);
if ( sortOrder != null
|| selection != null
|| selectionArgs != null
|| projection != null) {
throw new IllegalArgumentException(
"do not specify sortOrder, selection, selectionArgs, or projection" +
"with this query");
} cursor = db.rawQuery(query, null);
执行这条SQL语句,如果短信内容是:“短信信息搜索”,只有输入“短信”才能查到结果,输入“信息”却查不到结果,也就是说输入第一个字符串才能查到,而且我把query中的‘%s*'改为‘%s‘,却导致什么都查不出来,不知何解?期待大牛现身!!!
String query = String.format("SELECT _id, index_text, source_id, table_to_use, offsets(words) FROM words WHERE words MATCH '%s*' LIMIT 50;", searchString);
if ( sortOrder != null
|| selection != null
|| selectionArgs != null
|| projection != null) {
throw new IllegalArgumentException(
"do not specify sortOrder, selection, selectionArgs, or projection" +
"with this query");
} cursor = db.rawQuery(query, null);
执行这条SQL语句,如果短信内容是:“短信信息搜索”,只有输入“短信”才能查到结果,输入“信息”却查不到结果,也就是说输入第一个字符串才能查到,而且我把query中的‘%s*'改为‘%s‘,却导致什么都查不出来,不知何解?期待大牛现身!!!
解决方案 »
- android音频录制、绘制曲线问题
- ViewPager中的gridview怎么更新数据呢,求高人。。。
- ServerSocket做的端口监听时间长老是被回收的问题
- android 接口调用
- ListView如何得到某一行的内容
- Android的异常有没有好的解决办法啊
- 问一个问题。
- Android上如何使得a.cpp生成两个静态库(libA.a and libB.a)
- 彻底逆天了,这样的代码,报这样的错误!
- 现在要做通过imsi获取手机归属地问题,只有获取到省就行
- listview中添加Button后,Button能够功能不完全相同吗?
- org.json.JSONObject格式化字符串的问题
我想问下,如果表中有这样一条语句"This is a table", SELECT _id FROM words WHERE words MATCH 'tab*',是否有结果呢?
这个个人认为是sqlite对中文没有很好的支持,后面这个Bug我没有解了,好像很多机器上都有这个问题,你有空可以研究下~~