sqlite where子句“ AND”和“ IN”

时间:2019-03-28 00:21:54

标签: javascript sqlite sql-delete

目标: 我正在尝试在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(不要问为什么会这样...)

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果数据以混合大小写存储在type列中,则SQLite区分大小写的比较将找不到它。您可以对照存储的数据进行检查,也可以像这样比较字符串:

WHERE type='order_book' COLLATE NOCASE ...