node-mssql拼接动态SQL查询报错问题求助
MSSQL动态拼接查询条件报错求助
我需要生成条件长度不同的MSSQL查询,示例如下:
- 示例1:
SELECT itemKey FROM items WHERE vendor in ('WALM', 'TARG', 'COSC')
- 示例2:
SELECT itemKey FROM items WHERE vendor in ('HOMD') AND originCountry in ('USA', 'CHN')
- 示例3:
SELECT itemKey FROM items WHERE vendor in ('WALM','TARG','COSC','LOWE','HOMD') and originCountry in ('USA','CHN','TAI','VIE')
我通过以下JavaScript代码动态构建查询条件filter:
filter += ' AND vendor in (' while(i < vendors.length) { if(i == (vendors.length - 1)) { filter += '\'' + vendors[i] + '\')' } else { filter += '\'' + vendors[i] + '\',' } i++ }
之后执行查询语句:
const result = await sql.query(`SELECT itemKeys FROM items WHERE ${filter}`)
但上述动态拼接的查询执行时会报错,错误堆栈显示SQL语法相关异常。
而硬编码的同类查询却能正常运行:
const result = await sql.query(`SELECT itemKeys FROM items WHERE vendor in ('TARG')`)
我已通过硬编码查询验证代码其他部分无问题,现求助解决动态拼接查询报错的问题。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

