Node.js sqlite3 IN 运算符
Posted
技术标签:
【中文标题】Node.js sqlite3 IN 运算符【英文标题】:Node.js sqlite3 IN operator 【发布时间】:2016-03-24 18:48:43 【问题描述】:所以我目前正在尝试在 Node.js 中进行查询:
// friends is an array object
db.all('SELECT email ' +
'FROM users' +
'WHERE email in ?', friends, function(err, rows)
if (!err)
我知道您可以为每个“?”传入一个参数数组。符号,但在这种情况下是否可以使用 IN 运算符?如果没有,我应该进行字符串连接还是准备语句?
【问题讨论】:
【参考方案1】:db.all('SELECT email ' +
'FROM users' +
'WHERE email in ( ' + friends.map(function() return '?' ).join(',') + ' )',
friends,
function(err, rows)
if (!err)
【讨论】:
【参考方案2】:// friends is an array object
db.all(`SELECT email FROM users WHERE email in $ friends.map(() => "?").join(",") `,
friends, (err, rows) =>
if (!err)
)
【讨论】:
【参考方案3】:asbel 的出色答案略有不同:
db.all(
`SELECT email FROM users WHERE email in ($ friends.fill('?') )`,
friends,
callback
);
【讨论】:
以上是关于Node.js sqlite3 IN 运算符的主要内容,如果未能解决你的问题,请参考以下文章
Node.js 说它不能加载 sqlite3 模块,但无论如何
node.js 上的 Sqlite3 产生 SQLITE_ERROR