android在数据库中删除符合多个条件的数据

kcs07 2013-09-11 12:13:00
想要删除smslist这个表中number = num 且 body = bo 且 date = da 的数据
(num,bo,da都为String)
我这样写的:

db.execSQL("delete from smslist where number="+num+" and body="+bo+" and date="+da);


然后运行提示错误:

android.database.sqlite.SQLiteException: near "03": syntax error (code 1): , while compiling:
delete from smslist where number=152013268889 and body=hi and date=2013-09-11 03:43:35


这个知道怎么改了,原来变量两边少了‘’
应该这样:

 db.execSQL("delete from smslist where number='"+num+"' and body='"+bo+"' and date='"+da+"'");



那么如果我用 db.delete();删除
那该怎么写?
...全文
2770 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
亚洲神鹿 2015-06-04
  • 打赏
  • 举报
回复
引用 8 楼 lvleilvlei 的回复:
[quote=引用 7 楼 u010607283 的回复:] [quote=引用 5 楼 tanwei4199 的回复:] [quote=引用 4 楼 tanwei4199 的回复:] 多条件的删除木有 但是可以多条件查询 得到结果的Cursor后 删除
刚看了下 之前的代码 条件删除也是可以的 和查询差不多 db.delete(“表名”,“xxx=? and yyy=?”,new String[]{"aaa","bbb"});可以试试[/quote] 这个我用了,结果证明是可行的,没有报错![/quote] 那么如果删除一个表名的多条数据,用delete怎么写呢,new String[]{" "}双引号里面的参数怎么写呢? [/quote][/quote] 举个例子: db.delete("favorites", "audioTitle=? and conDeviceUuid=?", new String[] { audioTitle,conDeviceUuid });
「已注销」 2015-04-30
  • 打赏
  • 举报
回复
引用 7 楼 u010607283 的回复:
[quote=引用 5 楼 tanwei4199 的回复:] [quote=引用 4 楼 tanwei4199 的回复:] 多条件的删除木有 但是可以多条件查询 得到结果的Cursor后 删除
刚看了下 之前的代码 条件删除也是可以的 和查询差不多 db.delete(“表名”,“xxx=? and yyy=?”,new String[]{"aaa","bbb"});可以试试[/quote] 这个我用了,结果证明是可行的,没有报错![/quote] 那么如果删除一个表名的多条数据,用delete怎么写呢,new String[]{" "}双引号里面的参数怎么写呢? [/quote]
亚洲神鹿 2015-03-17
  • 打赏
  • 举报
回复
引用 5 楼 tanwei4199 的回复:
[quote=引用 4 楼 tanwei4199 的回复:] 多条件的删除木有 但是可以多条件查询 得到结果的Cursor后 删除
刚看了下 之前的代码 条件删除也是可以的 和查询差不多 db.delete(“表名”,“xxx=? and yyy=?”,new String[]{"aaa","bbb"});可以试试[/quote] 这个我用了,结果证明是可行的,没有报错!
别介意 2013-09-13
  • 打赏
  • 举报
回复
public void updatesMebers(ChatRoomMebersInfo msg, String username) { ContentValues values = new ContentValues(); values.put("roomname", msg.getRoomName()); values.put("username", msg.getUsername()); values.put("nickname", msg.getNickname()); values.put("headImg", msg.getHeadImg()); values.put("state", msg.getState()); values.put("kissNo", msg.getKissNo()); // values.put("signature", msg.getSignature()); values.put("gender", msg.getGender()); String whereClause = "username=?"; String[] whereArgs = { username }; db.update("chatroom_meber", values, whereClause, whereArgs); 借鉴下update db.update(table, values, whereClause, whereArgs)修改成 db.delete(table, whereClause, whereArgs)就可以用了 }
荒颜 2013-09-11
  • 打赏
  • 举报
回复
引用 4 楼 tanwei4199 的回复:
多条件的删除木有 但是可以多条件查询 得到结果的Cursor后 删除
刚看了下 之前的代码 条件删除也是可以的 和查询差不多 db.delete(“表名”,“xxx=? and yyy=?”,new String[]{"aaa","bbb"});可以试试
荒颜 2013-09-11
  • 打赏
  • 举报
回复
多条件的删除木有 但是可以多条件查询 得到结果的Cursor后 删除
k_c_u_f 2013-09-11
  • 打赏
  • 举报
回复
引用 2 楼 kcs07 的回复:
[quote=引用 1 楼 k_c_u_f 的回复:] 删除只能用execSQL或游标,游标只能一条一条的删除
就是不能多条件的删除么?[/quote] 应该不能
kcs07 2013-09-11
  • 打赏
  • 举报
回复
引用 1 楼 k_c_u_f 的回复:
删除只能用execSQL或游标,游标只能一条一条的删除
就是不能多条件的删除么?
k_c_u_f 2013-09-11
  • 打赏
  • 举报
回复
删除只能用execSQL或游标,游标只能一条一条的删除
非常好用的SQLiteSpy 1.8.16 免费正式版(内附有一做好的DB,大家可以马上看下效果)。网上看到的,整理了下,共享给大家! 希望有用! SQLiteSpy是一个快速和紧凑的图形用户界面的SQLite数据管理软件。它可以读取sqlite3文件并执行SQL。图形用户界面使得它很容易分析和操纵sqlite3的数据。 注意:SQLiteSpy是免费供个人和教育用途,SQLiteSpy主要特点: 1、数据一览:树状显示所有的架构,包括表,列,索引和触发器在数据包含的项目。按F5更新架构树,双击一个表或视图来显示它的数据,使用常用的命令的上下文菜单。 2、网格单元格编辑:表格单元格编辑,显示一个表通过树状架构,选择一个单元格,然后按F2键调用编辑器。然后修改并确认您的更改写回到表里。 3、数据类型显示:本机的SQL数据类型显示不同的背景颜色来帮助检测类型错误。类型错误可能会导致性能下降或错误的SELECT结果集,防止NULL值与空字符串混淆。 4、完全的Unicode: SQLiteSpy具有完全支持SQLite的Unicode的能力。数据显示和输入是完全实现为Unicode,包括SQL命令。 5、多个SQL编辑:现代标签是用来编辑和显示的查询语句和结果比较容易多个SQL查询。 SQL查询执行输入或加载到SQL他们编辑。然后按F9键运行该查询,或Ctrl + F9来运行当前行或选择只。 6、时间测量: SQL执行的时间会自动测量和显示,以帮助优化查询。 7、正则表达式:在SQL关键字regexp是支持,并增加了完整的Perl的正则表达式语法5.10 SQLiteSpy。的实施,实现了利用DIRegEx库。 8、数学SQL函数:下面的SQL函数可用数学除了SQLite的默认:ACOS(), ASIN(), ATAN(), ATAN(), ATAN2(), CEIL(), CEILING(), COS(), COT(), DEGREES(), EXP(), FLOOR(), LN(), LOG(), LOG(), LOG2(), LOG10(), MOD(), PI(), POW(), RADIANS(), SIGN(), SIN(), SQRT(), TAN(), TRUNCATE(). 9、数据压缩:压缩的SQL函数()适用的zlib的紧缩到任何文本或BLOB值。 10、紧凑型结果储存:使用内部数据存储机制,以达到最佳的兼容SQLite的原生数据类型。因此,SQLiteSpy使用远低于其它的SQLite管理内存和更有效地处理大量的表。 11、内建的SQLite引擎: SQLiteSpy已建成一个单一的应用程序文件与SQLite数据引擎可执行文件。不需要部署任何DLL文件,这使得SQLiteSpy更易于部署。 12、加密支持: SQLiteSpy可以阅读和修改加密的数据文件由DISQLite3产生。 DISQLite3实现了自己的母语AES加密。这为不符合商业SQLite的加密扩展(SSE)的或任何其他第三方的实施提供兼容。 13、易安装和卸载:要运行SQLiteSpy,只需解压SQLiteSpy.exe文件到任何目录和执行文件。不需要安装。刚开始时,该程序创建一个文件SQLiteSpy.db3(1 sqlite3的数据)来存储的和设置。它不写任何其他文件或注册表。卸载一样只是简单的删除两个文件:应用程序的可执行文件和数据文件。

80,472

社区成员

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

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