使用 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 中删除给定值数组的多行