目标:
我正在尝试在sqlite表中进行批量删除,而不是使用for循环删除每个数据。因此,我正在尝试使用"IN"
。
案例:
我在执行查询时有两个参数。第一个是type
,第二个是order_id
。我想删除type
为"order_book"
和order_id
为["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
我尝试过的方法,但是缺少类型参数:
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
(不要问为什么会这样...)
在此先感谢您的帮助!
答案 0 :(得分:0)
如果数据以混合大小写存储在type
列中,则SQLite区分大小写的比较将找不到它。您可以对照存储的数据进行检查,也可以像这样比较字符串:
WHERE type='order_book' COLLATE NOCASE ...