目标:我正在尝试在sqlite表中进行批量删除,而不是使用for循环删除每个数据。因此,我正在尝试使用"IN"。案例:我在执行查询时有两个参数。第一是type,第二是order_id。我想删除typeis"order_book"和order_idare中的数据["B001", "B002", ...]。我已经尝试但无法正常工作的内容:window.sqlitePlugin.openDatabase({ name: 'dbname.db', location: 'default' }).executeSql("DELETE FROM table_name WHERE type='order_book' AND order_id IN ('B001', 'B002')", [], (res) => { console.log(res.rows); });// => this is not work我尝试过的工作原理,但是它缺少type参数:window.sqlitePlugin.openDatabase({ name: 'dbname.db', location: 'default' }).executeSql("DELETE FROM table_name WHERE order_id IN ('B001', 'B002')", [], (res) => { console.log(res.rows); });// => data with order_id B001 and B002 deleted那么,这怎么了?我还需要定义什么是type因为不同type可能具有相同的含义order_id(不要问为什么会这样...)
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
如果数据以大写或大写混合存储在type
列中,则SQLite的区分大小写的比较将找不到它。您可以对照存储的数据进行检查,或比较如下所示的字符串:
WHERE type='order_book' COLLATE NOCASE ...
添加回答
举报
0/150
提交
取消