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
);