【问题标题】:Array value Passing into SQL Server IN Query数组值传递到 SQL Server IN 查询
【发布时间】:2021-09-03 15:59:49
【问题描述】:

我正在使用 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 它有限制。我无法使用那种格式。

【问题讨论】:

    标签: javascript node.js sql-server typescript sequelize.js


    【解决方案1】:

    可能是IN 子句中的值作为数组传递。请看看这个array value passing inside IN clause

    【讨论】:

      【解决方案2】:

      您需要使用array#map 创建引用的城市名称,该名称将在IN 子句中传递。

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

      【讨论】:

        猜你喜欢
        • 2012-08-08
        • 2015-03-21
        • 2021-05-17
        • 1970-01-01
        • 1970-01-01
        • 2017-06-26
        • 1970-01-01
        相关资源
        最近更新 更多