当在占位符中使用sql查询时,它不接受数组作为值,即使result大于1,它也仅返回一个结果。不使用占位符且不进行转义可以完美地返回正确数量的结果。

//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)..

最佳答案

我所要做的就是将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) {..

09-28 14:31