MariaDB选择值数组中的位置

时间:2018-03-13 10:47:14

标签: node.js select mariadb

我有一组值let arr = ['val1', 'val2'] 我想选择某行等于此值

之一的行
pool.query("select id from sometable where somerow in (" + arr + ")", 
      function (err, rows) {
                if (err) return console.log(err)
                console.log(rows)
            })

但我收到错误'Unknown column \'val1\' in \'where clause\' 我已经尝试过arr.join(),但这有助于帮助。 如果我试图通过id找到并给出一组数字(ids),一切都很好

2 个答案:

答案 0 :(得分:0)

看看这个:

https://github.com/mysqljs/mysql#performing-queries

我认为应该有效:

pool.query("select id from sometable where somerow in (?)", arr, 
    function (err, rows) {
        if (err) return console.log(err)
        console.log(rows)
    })

答案 1 :(得分:0)

您可以完全像这样创建查询字符串

const inQuery = arr.map('?').join(',');

pool.query(`select id from sometable where somerow in (${inQuery})`, arr, function (err, rows) {
  if (err) return console.log(err);
  console.log(rows);
});

inQuery将包含比数组长度精确?倍的时间。