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)..
答案 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) {..