使用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有你的答案。
- Sequelize JSON数据types
- 错误:在macOS Sierra上使用sails-mysql时握手不活动超时
- nodejs:mysql无法访问连接查询callback中的全局variables
- Node.js没有很好的pipe理MySQL模式/迁移的ORM …所以我可以使用SQLAlchemy来pipe理它吗?
- ER_TRUNCATED_WRONG_VALUE_FOR_FIELD将一些string保存到mysql
- 为什么我不能从一个mysql查询发送一个响应Express?
- Sails js:如何在Sails js的单个模型中定义两个到两个不同数据库的MySQL连接?
- 用Node.JS查询MySQL并在网页中显示结果
- MySQL – 当一个表可能没有对应的行时,如何在查询中组合两个表