sql语句中的数组不与占位符?nodejs一起使用

时间:2018-04-10 02:44:16

标签: javascript sql node.js

sql查询在占位符中使用时不接受数组作为值,它只返回一个结果,即使结果大于1.不使用占位符而没有转义它可以完美地返回正确的结果量。< / p>

//works
SELECT * FROM users WHERE userId IN (" + followerIds.join() + ");";
//does not work
SELECT * FROM users WHERE userId IN (?);";
con.query(queryFollowerstTable, [followeringIsd.join()],function(err,result)..

2 个答案:

答案 0 :(得分:0)

更改 con.query(queryFollowerstTable, [followeringIds.join()],function(err,result)con.query(queryFollowerstTable, followeringIds.join(),function(err,result)

在您的原始示例中: SELECT * FROM users WHERE userId IN (" + followerIds.join() + ");";

您传入的字符串不是数组

答案 1 :(得分:0)

我所要做的就是将followerIds.join()解析为一个int并且它有效。

followerIdsParsed = followerIds.join().split(',').map(Number);
followingIdsParsed = followingIds.join().split(',').map(Number);
var queryFollowerstTable = "SELECT * FROM users WHERE userId IN (?); SELECT * 
FROM users WHERE userId IN (?);";
con.query(queryFollowerstTable, [followerIdsParsed, followingIdsParsed], 
function(err, result) {..