sqlite where子句“ AND”和“ IN”

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


杨魅力
浏览 703回答 1
1回答

慕工程0101907

如果数据以大写或大写混合存储在type列中,则SQLite的区分大小写的比较将找不到它。您可以对照存储的数据进行检查,或比较如下所示的字符串:WHERE type='order_book' COLLATE NOCASE ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript