- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我已经苦苦挣扎了几个小时,试图调试为什么即使在完全相同的数据库上完全相同的查询在 Firefox 的 SQLite 管理器中运行良好,以下删除查询实际上并没有删除任何内容:
String deleteSql = "DELETE FROM showsummary WHERE url IN (SELECT url FROM showsummary JOIN article_categories USING (url) WHERE categoryid=20 AND title LIKE 'page=%')";
mDb.rawQuery(deleteSql, null);
由于 JOIN 和子查询都有点复杂,我的想法围绕着 Android 的 sqlite 实现中关于子查询的一些限制,所以我尝试简化查询。但它仍然没有删除任何内容。
然后我将其更改为一个选择查询(只是将 DELETE 替换为 SELECT *)并且有效。所以可能不是联接或子查询才是罪魁祸首。
为了测试选择查询,我添加了一个 moveToFirst()
到返回的光标:
mDb.rawQuery(deleteSql, null).moveToFirst();
后来我又改回删除查询时,忘记删除moveToFirst()
然后就成功了!
现在很好用,但我很困惑为什么必须移动光标才能真正删除任何内容。这是设计使然还是错误?
最佳答案
我无法回答原因,但另一种解决方案是使用发布的 here 中的 .execSQL(String)
关于android - 为什么删除 rawQuery 需要 moveToFirst 才能实际删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211158/
我们有这两个类 MainActivity 和一个 DBHelper DBHelper创建数据库和两个表一个表,masterPW ,只有一行两列,ID和 ColPW .一旦创建并插入数据,该表将仅包含一
我正在对我的数据库进行更新,但它不起作用。这是我的代码: list.setOnItemClickListener(new OnItemClickListener() { @Overri
我一遍又一遍地寻找这个问题的答案,但你是我唯一的机会。事情是这样的: 我有一个 DBAdapter 类、MakeListActivity 和 SeeListActivity。 在DBAdapter中我
我想实现 Android Room 持久性。 这是我的 DAO 界面。 @Dao interface FoodDao { /** * Returns all data in tabl
我得到了这个方法,它应该检查数据库中的给定数据并显示包含该数据的整行。 movies 是表的名称,year 是列的名称。 我已经尝试了几个小时,但找不到原因,为什么它会抛出此错误: 11-24 19:
因此,目前在添加到我的数据库时,我执行此 select 语句获取结果并将其添加到我的数据库中的单独列中,如下所示: public void addGasLog(GasLog gasLog){
一个简单的问题,我在互联网上找不到它,可能我看错了“术语”。但是如何制作带有“if contains”的SQL查询语句 "SELECT something FROM " + TABLE_NAME +
我的准备好的 SQL 语句有一个奇怪且无法解释的错误,它没有提供与 noprepared 语句相同的结果。 这两个版本不应该返回相同的结果吗? 准备好的版本(结果错误): sb.append(" WH
当我使用正常的 13 位条码运行以下任一查询时,我的数据库返回的结果非常好。但是,当我使用 8 位条形码运行完全相同的代码时,即使结果存在于数据库中,也不会在第二个查询中找到。对我来说,这些查询看起来
为了获得查询的多个结果,我使用了 Cursor c = mydatabase.rawQuery("command", null); 然后是 while (c.moveToNext()) { ... }
我希望能够使用原始查询按升序对单词进行排序(因为我将使用游标)。但是,当我尝试按字母顺序对单词进行排序时,我的应用程序崩溃了,出现了这个错误: android.database.sqlite.SQLi
我正在使用 String.format 将 SQLite 查询构建为 String 并将其传递给 SQLiteDatabase.rawQuery。我最后传递的整数参数被硬编码为零(我正在寻找大于零的任
如何执行下面的查询 select * from regions where field1 in('word1', 'word2') 使用 sqlite rawQuery 方法? 我试过下面的代码: S
我正在尝试使用带有 simpleCursorAdapter 的 rawQuery 来显示到 ListView ,但它一直向我抛出错误 04-29 13:36:36.453: ERROR/Android
什么都试过了。此更新不起作用。没有错误或其他什么 - 它只是不更新表格。 void SetDisable (Integer ID, boolean action){ Integ
我正在使用MySQLI Wrapper如 docs 中所述关于运行 rawQuery。由于它没有任何搜索数据库的功能,所以我自己编写了。下面是正在使用的代码。 $songs = $db->Object
Android 中 SQLite 数据库的以下 rawQuery 不返回任何结果: String query = "SELECT * FROM " + "(SELECT MATCH_ID, P
我正在运行以下命令,但以下列的列名称不明确 Cursor cursor = getWritableDatabase().rawQuery("select ((odometer) - y.odomete
我正在尝试在 WHERE 中使用动态创建的列表,例如: select * from books where id in (123, 120, 125) and bookCover = 'Hardcov
我创建了这个方法来了解我的 Sqlite 数据库中是否存在联系人。 public Cursor doesContactExist(String name) { return db.rawQue
我是一名优秀的程序员,十分优秀!