使用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有你的答案。