Javascript 如何在中的SQL之后放置字符串
我的idList是一个包含一些数字的字符串,如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
(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*/