如何在查询参数中使用IN?

时间:2014-08-12 06:15:58

标签: javascript sqlite titanium

我有这样的查询。

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

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

2 个答案:

答案 0 :(得分:0)

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

如果有四个值,则需要四个参数:

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

答案 1 :(得分:0)

如果数组的长度是动态的,请尝试以下方法:

var params = ["messi", "neymar", "suarez", "alves"],
    qMarks = new Array(params.length).join("?,") + "?";


db.execute("SELECT * FROM player_details WHERE name in (" + qMarks + ");", params);