【问题标题】:How to use IN with a query parameter?如何将 IN 与查询参数一起使用?
【发布时间】:2014-08-12 06:15:57
【问题描述】:

我有一个这样的查询。

SELECT * FROM player_details where name in ('messi','neymar','suarez','alves')

我想用钛执行这个查询。 我试过这样

var in  = ['messi','neymar','suarez','alves'];
db.execute('SELECT * FROM player_details where name in ?',in);

但上面的代码会产生错误。 如何在钛的 sqlite 中添加 IN 和 NOT IN 条件?

【问题讨论】:

    标签: javascript sqlite titanium


    【解决方案1】:

    单个参数? 替换单个表达式。

    当你有四个值时,你需要四个参数:

    db.execute('SELECT * FROM player_details where name in (?,?,?,?)', in);
    

    【讨论】:

    • 数组长度是动态的
    • 那你就要动态构造查询字符串了。
    【解决方案2】:

    如果数组的长度是动态的,试试这样:

    var params = ["messi", "neymar", "suarez", "alves"],
        qMarks = new Array(params.length).join("?,") + "?";
    
    
    db.execute("SELECT * FROM player_details WHERE name in (" + qMarks + ");", params);
    

    【讨论】:

      猜你喜欢
      • 2022-09-29
      • 2022-12-04
      • 2018-04-16
      • 2019-01-25
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 2011-10-21
      • 2018-08-07
      相关资源
      最近更新 更多