【发布时间】: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