数组值传入 SQL Server IN 查询

Jay*_*Jay 3 javascript sql-server node.js sequelize.js typescript

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

SELECT Name,id,date FROM venue where name IN('Bangalore','Delhi')
Run Code Online (Sandbox Code Playgroud)

下面的查询没有执行

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

我观察到的是,当我将动态值传递到查询中时,它采用""引号,"Bangalore","Delhi"即但查询期望的是单引号''

我知道在 Nodejs 中,我们可以传递?和 值作为参数,但在我们的例子中,我们使用 typescript 和续集它有限制。我无法使用该格式。

Has*_*mam 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);
Run Code Online (Sandbox Code Playgroud)