(急)关于android中sqlite3 模糊查询问题,懂数据库的大牛们快来啊

保定老狼 2011-12-09 05:27:14
刚做了下模糊查询
如下
db.query(DbAdapter.TABLE_NAME, null,
" app_name LIKE ?, new String[] { "%"+app_name+"%"},
null, null, null);

这样可以实现查到app_name这个字段包含的内容,比如 库中有字段 新浪邮箱 我传进去 新浪 ,是可以查到新浪邮箱这条记录的。


我想实现的是 还比如 库中有字段 新浪邮箱 我传进去 我的新浪邮箱 目标是查处 新浪邮箱这条记录,可是没有查到。

语句如下
db.query(DbAdapter.TABLE_NAME, null,
" ? LIKE '%'+app_name+'%'" , new String[] { app_name},
null, null, null);


没有返回结果

在线等大牛啊!
...全文
976 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
huayuehen522 2012-10-29
  • 打赏
  • 举报
回复
查询的条件应该是 列名+ " like '%" + 查询参数 + "%'" 吧。。。
你的引号把参数都引进去了
a26651551 2012-10-29
  • 打赏
  • 举报
回复
我也遇到,看了希望解决。
保定老狼 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dikeboy1234 的回复:]

一般 查询的关键字至少2个吧
String str="我的新浪邮箱"
String sql;
String value;
for(int i=0;i<str.lengtn-2;i++){
str=str.substring(i,i+2)
if(i==0)
sql=sql+"app_name like '%"+str+"%' ;
else
……
[/Quote]

你的意思是拼接一个很多 or的SQL语句吧 把每种可能都写上 但是 中文和英文怎么办呢 中文两个字符,英文是一个 每次取i到i+2肯定会遗漏一些英文的东西
贪睡的兔子 2011-12-13
  • 打赏
  • 举报
回复
一般 查询的关键字至少2个吧
String str="我的新浪邮箱"
String sql;
String value;
for(int i=0;i<str.lengtn-2;i++){
str=str.substring(i,i+2)
if(i==0)
sql=sql+"app_name like '%"+str+"%' ;
else
sql=sql+" or app_name like '%"+str+"%';
}
db.rawQuery(sql,null)
保定老狼 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 baodinglaolang 的回复:]

引用 6 楼 vanezkw 的回复:

你可以逐个截取app_name字符串,进行多次查询。
或者你可以把那个字段都查出来,比较有没有是app_name字符串字串的记录。

我觉得这样可能就失去模糊查询的意义了
[/Quote]
这个是在android中写了个DBhelp new出一个DB就可以查询了
安卓机器人 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 baodinglaolang 的回复:]

引用 3 楼 ncuboy045wsq 的回复:

引用楼主 baodinglaolang 的回复:
刚做了下模糊查询
如下

Java code

db.query(DbAdapter.TABLE_NAME, null,
" app_name LIKE ?, new String[] { "%"+app_name+"%"},
null, null, null);

这样……
[/Quote]
不知道如何在sqlite中实现
保定老狼 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kinglo 的回复:]

你的第两句,就是错误的当然查不到了!你的?占的是字段名称的位置,就没有这样的sql。这种应该是要事先定义好关键词。
[/Quote]

是啊 等高手啊
保定老狼 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ncuboy045wsq 的回复:]

引用楼主 baodinglaolang 的回复:
刚做了下模糊查询
如下

Java code

db.query(DbAdapter.TABLE_NAME, null,
" app_name LIKE ?, new String[] { "%"+app_name+"%"},
null, null, null);

这样可以实现查到app_name这个字段包含的内容……

……
[/Quote]

对,这段代码可以实现你说的功能,我现在想做的是输入“我的新浪微博”就可以查到列“新浪微博”这样的操作,不知道如何查询
保定老狼 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 vanezkw 的回复:]

你可以逐个截取app_name字符串,进行多次查询。
或者你可以把那个字段都查出来,比较有没有是app_name字符串字串的记录。
[/Quote]
我觉得这样可能就失去模糊查询的意义了
vane 2011-12-12
  • 打赏
  • 举报
回复
你可以逐个截取app_name字符串,进行多次查询。
或者你可以把那个字段都查出来,比较有没有是app_name字符串字串的记录。
安卓机器人 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 baodinglaolang 的回复:]
刚做了下模糊查询
如下

Java code

db.query(DbAdapter.TABLE_NAME, null,
" app_name LIKE ?, new String[] { "%"+app_name+"%"},
null, null, null);

这样可以实现查到app_name这个字段包含的内容……
[/Quote]
请问下你是要查询包含你输入app_name(如新浪微博)就可以搜索到列1(如新浪微博1)和列2(如新浪微博2)这样的类似的操作吗
动力学堂 2011-12-09
  • 打赏
  • 举报
回复
这样的需求在sql中很难实现的吧,=高手!
动力学堂 2011-12-09
  • 打赏
  • 举报
回复
你的第两句,就是错误的当然查不到了!你的?占的是字段名称的位置,就没有这样的sql。这种应该是要事先定义好关键词。

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧