Javascript 如何在中的SQL之后放置字符串

Javascript 如何在中的SQL之后放置字符串,javascript,sql,node.js,Javascript,Sql,Node.js,我的idList是一个包含一些数字的字符串,如(1,3,5,7,9) 我怎么能做这样的事 console.log("idList: ",idList); 如果我直接使用(1,3,5,7,9)而不是idList变量,它会工作。但是我可以在SQL中使用idList,即使我将其键入为“+idList+”,返回一个空字符串。使用ES6功能字符串插值 db.all('SELECT * FROM photoTags WHERE idNum IN idList',dataCallback); 在大多数OR

我的idList是一个包含一些数字的字符串,如
(1,3,5,7,9)

我怎么能做这样的事

console.log("idList: ",idList);

如果我直接使用
(1,3,5,7,9)
而不是
idList
变量,它会工作。但是我可以在SQL中使用
idList
,即使我将其键入为
“+idList+”
,返回一个空字符串。

使用ES6功能字符串插值

db.all('SELECT * FROM photoTags WHERE idNum IN idList',dataCallback);

在大多数ORM中,以简单的方式绑定值列表是不可能的

此外,如果
idList
是字符串而不是数组,则可能无法使用 在这种情况下,事先准备好的陈述

尝试直接连接(不要忘记括号)


下面的代码拆分@idNum变量值,然后将拆分后的值与表'photTags'idNum进行比较。如果输入参数@idNum value为字符串,而表格idNum value为整数。不会显示任何结果。以下代码有助于此类情况:):


您使用的是哪一个sql库?为什么在这里的末尾有引号?
“+idList+”
?只需用字符串idList连接查询即可。
db.all(`SELECT * FROM photoTags WHERE idNum IN (${idList.toString()})`,dataCallback);
db.all('SELECT * FROM photoTags WHERE idNum IN ' +  idList, dataCallback);
DECLARE @idNum VARCHAR(100) = '1,3,5,7,9';
SELECT  *
  FROM photoTags 
  WHERE idNum IN  ( SELECT  value
   FROM    STRING_SPLIT(@idNum, ',') ); /*STRING_SPLIT Function 
                                             available only in 
                                             MS-SQL 2016*/