我正在尝试使用ES6 String模板来查询我的数据库
我的SQL就像:
SELECT * FROM table WHERE id IN ();
in必须包含数组的每个项目,所以,我试过这样的事情:
return connector.query`SELECT * FROM table WHERE AnalogHistory.TagName IN (${sensor})`.then(result => {return result.recordset});
这不起作用。但如果我尝试这样的事情:
return connector.query`SELECT * FROM table WHERE AnalogHistory.TagName IN (${sensor[0]},${sensor[1]}, ${sensor[2]}, ...)`.then(result => {return result.recordset});
这次,它有效。所以你们知道第一种方式(清洁工)有什么不同之处吗?
答案 0 :(得分:0)
我们不能完全确定query
如何处理标记参数,但不同之处在于,在第一种情况下,您提供了query
数组作为单个参数;在第二种情况下,您已为query
提供了一系列带有逗号的个别参数。
显然它对第二个很满意,而不是第一个。是否有第三种选择不那么费力但功能也完全取决于query
的设计方式。
重新评论说它是mssql
npm包:我在its documentation中没有看到任何建议它支持将数组作为参数传递到query
标记函数中。这真的很不幸。