我有一组值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),一切都很好
答案 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
将包含比数组长度精确?
倍的时间。