使用 Node.js 和 Express.js 在 MySQL 中删除给定值数组的多行

Posted

技术标签:

【中文标题】使用 Node.js 和 Express.js 在 MySQL 中删除给定值数组的多行【英文标题】:Deleting multiple rows given an array of values in MySQL with Node.js and Express.js 【发布时间】:2017-08-27 21:55:38 【问题描述】:

我正在尝试删除 mysql 表中与数组中的多个值匹配的多行。

这是我尝试的一个例子:

const query = 'DELETE FROM example_table WHERE (a_id AND b_id AND c_id) IN ?';
const values = [
       a_id: 1, b_id: 2, c_id: 3,
       a_id: 4, b_id: 5, c_id: 6,
       a_id: 7, b_id: 8, c_id: 9
     ];

connection.query(query, values, function(err, results) 
     // do something
);

因此,我实际上是在尝试查找其列值与数组中对象中的值匹配的行。我认为我的问题是我的查询语句根本不一定比较值,或者我处理这个问题的逻辑不正确。

查询语句应该是什么,或者我应该以另一种方式这样做?

谢谢。

【问题讨论】:

const query = 'DELETE FROM example_table WHERE a_id in (?) and b_id in (?) AND c_id IN (?)'; 试试这个... 【参考方案1】:
const query = 'DELETE FROM example_table WHERE a_id in (?) and b_id in (?) AND c_id IN (?)';
const values = [
       a_id: 1, b_id: 2, c_id: 3,
       a_id: 4, b_id: 5, c_id: 6,
       a_id: 7, b_id: 8, c_id: 9
     ];

connection.query(query, values, function(err, results) 
     // do something
);

【讨论】:

您好,我尝试以这种方式格式化查询,但不幸的是它不起作用。 我认为你应该只传递一个数组,例如 [1,2, 3] 如果这行得通,那么你应该选择 [ 1,2,3, 4,5,6, 7, 8, 9 ];

以上是关于使用 Node.js 和 Express.js 在 MySQL 中删除给定值数组的多行的主要内容,如果未能解决你的问题,请参考以下文章

我啥时候应该在独立的 node.js 上使用 express.js

会话如何在 Express.js 和 Node.js 中工作?

使用 Node.js 和 Express.js 在 MySQL 中删除给定值数组的多行

node.js 和 express 的区别

UnhandledPromiseRejectionWarning、Express.js 和 Node.js

Node.js + Express.js |尝试设置 HTTPS 服务器