【问题标题】:Querying MySQL using a set of values in a JavaScript array使用 JavaScript 数组中的一组值查询 MySQL
【发布时间】:2014-04-07 20:24:48
【问题描述】:

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

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

【问题讨论】:

  • @Adshi 是的,这将在 NodeJS 中

标签: mysql sql node.js


【解决方案1】:
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.
});

【讨论】:

【解决方案2】:

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

"SELECT * FROM users WHERE user_id IN (" . implode(',', $array_of_user_ids) 。 ")"

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

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

【讨论】:

  • 这个问题是在NodeJS环境下问的
猜你喜欢
  • 2013-09-25
  • 2010-11-09
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多