【发布时间】:2014-04-07 20:24:48
【问题描述】:
我想提交一个 MySQL 查询,可以描述为“如果 id 列与某个数组 x 中的任何值匹配,则返回来自 * 的所有值。”
有没有办法以这种方式在查询中使用数组的全部内容?
【问题讨论】:
-
@Adshi 是的,这将在 NodeJS 中
我想提交一个 MySQL 查询,可以描述为“如果 id 列与某个数组 x 中的任何值匹配,则返回来自 * 的所有值。”
有没有办法以这种方式在查询中使用数组的全部内容?
【问题讨论】:
var ids = [3, 4, 6, 8];
var query = 'SELECT * FROM table WHERE id IN (' + ids.join() + ')';
现在query 包含查询,该查询将返回 id 与 ids 数组中的任何值匹配的所有行。
使用mysql package,您可以像这样发出这个查询:
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 函数来获取一个数组并将其转换为一个用逗号分隔的字符串,如下所示:
"SELECT * FROM
usersWHERE user_id IN (" . implode(',', $array_of_user_ids) 。 ")"
这是假设您的数组看起来像 $array_of_user_ids = array(1, 2, 3, 4, ...)。
编辑:抱歉,我没有看到关于这是一个 JavaScript 数组的部分。 Adshi 有你的答案。
【讨论】: