使用JavaScript数组中的一组值来查询MySQL

我想提交一个MySQL查询,可以被描述为“如果id列匹配某个数组x中的任何值,则从*返回所有值”。

有没有办法以这种方式使用查询中的数组的全部内容?

var ids = [3, 4, 6, 8]; var query = 'SELECT * FROM table WHERE id IN (' + ids.join() + ')'; 

现在, query包含查询,该查询将返回id与ids数组中任何值匹配的所有行。

使用mysql包,你可以像这样发出这个查询:

 var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'admin', password : 'password' }); // construct query var ids = [3, 4, 6, 8]; var query = 'SELECT * FROM table WHERE id IN (' + ids.join() + ')'; connection.connect(); connection.query(query, function(err, rows, fields) { if (err) throw err; console.log(rows) // log all matching rows. }); 

您可以在PHP中使用implode函数来获取数组并将其转换为以逗号分隔的string,如下所示:

“SELECT * FROM users WHERE user_id IN(”。implode(',',$ array_of_user_ids)。“)”

这是假设你的数组看起来像$array_of_user_ids = array(1, 2, 3, 4, ...)

编辑:我的道歉,我没有看到这是一个JavaScript数组的一部分。 Adshi有你的答案。