将数组值传递到SQL Server IN查询

3

我正在使用Nodejs Typescript和SQL Server。我编写了一个查询来查找与数据库中匹配的数组值。如果我传递静态数组值,则可以获取数据。当添加动态数组值时,查询不会执行。我的查询如下。

SELECT Name,id,date FROM venue where name IN('Bangalore','Delhi')

以下查询未能执行

let input = ["Bangalore","Delhi"]
SELECT Name,id,date FROM venue where name IN('${input}')

我观察到的是,当我将动态值传递到查询中时,它会带有双引号 "",例如"Bangalore","Delhi",但是查询需要单引号''
我知道在Nodejs中我们可以使用?作为参数传递值,但在我们的情况下,我们使用TypeScript和Sequelize,它有一定的限制。因此我无法使用那种格式。
2个回答

5
您需要使用array#map创建带引号的城市名称,这些城市名称将传递到IN子句中。

const input = ["Bangalore","Delhi"],
      query = `SELECT Name,id,date FROM venue where name IN (${input.map(city => `'${city}'`)})`;
console.log(query);


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接