如何在查询参数中使用IN

How to use IN with a query parameter?

本文关键字:IN 参数 查询      更新时间:2023-09-26

我有一个这样的查询。

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

我想在titanium中执行这个查询。我试过了

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

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

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

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

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

如果数组的长度是动态的,尝试如下:

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

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