Node.js sqlite3 IN оператор

Поэтому я сейчас пытаюсь сделать запрос в Node.js:

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

Я знаю, что вы можете передать массив параметров для каждого '?' символ, но возможно ли использовать оператор IN в этом случае? Если нет, я должен сделать конкатенацию строк или подготовленные операторы?

3 ответа

Решение

Fe

db.all('SELECT email ' +
       'FROM users' +
       'WHERE email in ( ' + friends.map(function(){ return '?' }).join(',') + ' )', 
       friends, 
       function(err, rows) {
           if (!err) {

Небольшая вариация отличного ответа asbel:

db.all(
    `SELECT email FROM users WHERE email in (${ friends.fill('?') })`, 
    friends, 
    callback
);
Другие вопросы по тегам