【问题标题】:SQLITE DELETE FROM row WHERE id IN (?) removes only firs itemSQLITE DELETE FROM WHERE id IN (?) 仅删除第一项
【发布时间】:2020-10-18 02:32:01
【问题描述】:

我正在尝试根据 id 数组删除多行。查询是:

// id INTEGER PRIMARY KEY AUTOINCREMENT

executeSql(`DELETE FROM row WHERE id IN (?)`, [1,2,3])

但是,它只删除具有数组 ID 的第一行并忽略其余行(不删除 2 和 3);如果我尝试像这样基于非主键删除行

executeSql(`DELETE FROM row WHERE anotherId IN (?)`, [1,2,3])

一切正常。

我在这里错过了什么?

更新: 解决方法:DELETE FROM row WHERE id IN (idList.join(',')),谢谢大家!

【问题讨论】:

  • “我想了解它为什么不起作用” - 应该是文档的一部分(支持哪些参数,边缘情况,...)跨度>
  • 正确的语法应该是:delete FROM table...
  • 据我了解,我做的一切都是正确的sqlitetutorial.net/sqlite-in
  • 问题是您的查询中有一个参数,它被解释为in('1,2,3'),但它应该是in('1','2','3')
  • 你告诉你的查询期待一个参数,但实际上你给它 3。

标签: javascript sqlite react-native expo


【解决方案1】:

您需要将数组转换为逗号分隔的字符串。

类似的例子:

Delete multiple rows using IDs?

【讨论】:

    猜你喜欢
    • 2016-04-12
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2017-09-27
    相关资源
    最近更新 更多