11

所以我目前正在尝试在 Node.js 中进行查询:

// friends is an array object
db.all('SELECT email ' +
       'FROM users' +
       'WHERE email in ?', friends, function(err, rows) {
           if (!err) {

我知道您可以为每个“?”传入一个参数数组。符号,但在这种情况下是否可以使用 IN 运算符?如果没有,我应该进行字符串连接还是准备好的语句?

4

3 回答 3

15
db.all('SELECT email ' +
       'FROM users' +
       'WHERE email in ( ' + friends.map(function(){ return '?' }).join(',') + ' )', 
       friends, 
       function(err, rows) {
           if (!err) {
于 2016-01-20T09:47:52.447 回答
0

// friends is an array object
db.all(`SELECT email FROM users WHERE email in ${ friends.map(() => "?").join(",") }`,
    friends, (err, rows) => {
    if (!err) {}
})

于 2021-07-03T18:27:04.590 回答
-1

asbel 的好答案略有不同:

db.all(
    `SELECT email FROM users WHERE email in (${ friends.fill('?') })`, 
    friends, 
    callback
);
于 2020-07-25T15:54:51.753 回答