【问题标题】:Node.js sqlite3 IN operatorNode.js sqlite3 IN 运算符
【发布时间】: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 运算符?如果没有,我应该进行字符串连接还是准备语句?

【问题讨论】:

    标签: node.js sqlite sql-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
        );
        

        【讨论】:

          猜你喜欢
          • 2014-06-07
          • 1970-01-01
          • 2011-11-15
          • 2012-05-10
          • 2019-11-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多