android sqlite 模糊查询

chsmlsy 2014-07-20 01:04:38

// 根据列名查询
// col列名,con内容
public Cursor select_col(String col, String con) {
SQLiteDatabase db = this.getReadableDatabase();
String sql = "select * from " + TABLE_NAME + " where " + col
+ " like ?";
Cursor cursor = db.rawQuery(sql, new String[] { "'%" + con + "%'" });
return cursor;

"'%" + con + "%'" 这里无论加没加单引号,都得不到返回信息,不知道什么原因。
cursor.count都是-1
...全文
437 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chsmlsy 2014-07-24
  • 打赏
  • 举报
回复
晕, 其实"'%" + con + "%'" 里面不用加单引号的 我调试的时候一直关注cursor.mcount 可里面总是-1,导致我总以为出错,其实是正常的, 用cursor.getCount()获得的数据正常,可为什么cursor.mcount 就是-1,我到现在还不明白 不知道有没有高手指点?
gao_chun 2014-07-21
  • 打赏
  • 举报
回复
注意 单引号 和 双引号的 问题
红袖满楼招 2014-07-20
  • 打赏
  • 举报
回复
加两个“/”就行了 转义一下
哎,真难 2014-07-20
  • 打赏
  • 举报
回复
这样写明显有错误嘛,一个双引号里面的值代表string数组里面的一个值
Ruiray95 2014-07-20
  • 打赏
  • 举报
回复
可能是:"'%' + con + '%'",外面是双引号,内面是单引号。 还可以这么写:Cursor cursor=db.query(TABLE_NAME, null, col+" like ?", new String[]{"%"+con+"%"}, null, null, null);
_deadline 2014-07-20
  • 打赏
  • 举报
回复
你这也太纠结了吧! 不用这么麻烦 String sql = " select * from table where ' "+ con+ " ' like ? ";

80,350

社区成员

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

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