Javascript 如何在“中动态添加值”;在;在WHERE子句中?

Javascript 如何在“中动态添加值”;在;在WHERE子句中?,javascript,mysql,node.js,express,mariadb,Javascript,Mysql,Node.js,Express,Mariadb,我已经编写了一个查询,它将动态地向该查询添加参数 var sql ="SELECT s.contactId,s.name,s.phone,s.isDistributor,s.distToBeStatus,l.id AS languageId,l.name AS languageName,l.languageCode,l.nativeName,l.countryCode,c.id AS cityId,c.name AS cityName,c.state,c.country F

我已经编写了一个查询,它将动态地向该查询添加参数

     var sql ="SELECT s.contactId,s.name,s.phone,s.isDistributor,s.distToBeStatus,l.id AS languageId,l.name AS languageName,l.languageCode,l.nativeName,l.countryCode,c.id AS cityId,c.name AS cityName,c.state,c.country 
FROM syncContacts s LEFT JOIN languages l ON s.languageCode=l.languageCode 
LEFT JOIN cities c ON s.cityId=c.id WHERE s.distId=? AND s.distToBeStatus=?
 AND s.isDistributor =? AND s.languageCode IN (?) AND s.cityId IN (?)
 AND s.ageGroupId IN (?) AND s.occupationId IN (?) AND s.traitsId IN (?)"

var parameters =['2',1,0,'1','1','1','1','1']
var rows = await connection.query(sql,parameters)
 
目前,我正在Express中的Node.js中开发一个应用程序,其中有一个功能用于使用多个过滤器过滤联系人列表。因此,我根据所需的过滤器动态创建上述查询。例如,如果我需要获取所有使用印地语和英语以及cities Banglore和Kochi语言的联系人。然后,我必须为
s.cityId in(?)和s.languageCode in(?)
动态地在in(?)中添加多个值。这将根据过滤器进行更改。因此,在上面的代码中,参数将动态生成。我需要的是在in(?)中添加多个值。例如,如果我需要多个城市的结果,请在上面的代码中添加多个值;如何在(?)中的
s.cityId中动态添加多个值?当前我无法在(?)
查询中为一个
添加多个值。对于(?)
查询中的
中的一个值,上述代码工作正常

上述过滤器的原始查询如下所示

SELECT s.contactId,s.name,s.phone,s.isDistributor,s.distToBeStatus,l.id AS 
languageId,l.name AS languageName,l.languageCode,l.nativeName,l.countryCode,c.id AS 
cityId,c.name AS cityName,c.state,c.country FROM syncContacts s LEFT JOIN languages l ON 
s.languageCode=l.languageCode LEFT JOIN cities c ON s.cityId=c.id WHERE distId="2" AND s.distToBeStatus="1"
 AND s.isDistributor ="0" AND s.languageCode IN (1,2)
 AND s.cityId IN (1,2) AND s.ageGroupId IN (1,2)
 AND s.occupationId IN (1,2) AND s.traitsId IN (1,2)

请帮我找到一个解决方案?提前谢谢。

您还可以添加最终实际查询的内容吗?我只是想了解一下。非常确定您可以将作为占位符值的数组扩展为
in
子句中的多个值。您还可以添加什么作为最终实际查询吗?我只是想了解一下。我们可以在
子句中将作为占位符值给出的数组扩展为多个值。