【问题标题】:Deleting multiple rows given an array of values in MySQL with Node.js and Express.js使用 Node.js 和 Express.js 在 MySQL 中删除给定值数组的多行
【发布时间】: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 (?)';
  • 试试这个...

标签: javascript mysql arrays node.js express


【解决方案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} ];
猜你喜欢
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多