mysql - 使用nodejs在Mysql查询中传递数组

标签 mysql arrays node.js

我有一个简单的查询,我想传递一个包含 5 个项目的数组。我正在使用 mysql 模块,所以我知道它可以完成,但我没有正确执行 synatx,因此出现语法错误。

下面是查询:

`UPDATE table1 SET table1.col=0 WHERE (table1.col2) IN = (?) AND table1.id=(SELECT ...);`,[arr]

//arr = [1,2,3,4,5];

我试过:

`UPDATE table1 SET table1.col=0 WHERE (table1.col2) IN = (?,?,?,?,?) AND table1.id=(SELECT ...);`,[arr]`

但我仍然遇到语法错误。

最佳答案

除了 Bill Karwin 的回答之外,您还可以将一个数组传递给针对“?”的 MySQL 查询。占位符以同样的方式

WHERE table1.col2 IN (?)
//arr = [1,2,3,4,5];

将 arr 与查询一起传递会将其转换为所需的 SQL 字符串。 mysql 模块在内部使用“sqlstring”模块中的“SqlString.arrayToList”函数进行转换: https://github.com/mysqljs/sqlstring/blob/8f193cae10a2208010102fd50f0b61e869e14dcb/lib/SqlString.js#L60

关于mysql - 使用nodejs在Mysql查询中传递数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46535318/

相关文章:

arrays - 如何从 n 个数字的数组中找到一个数字数组(元素),其总和恰好等于(或几乎等于)数字 x。?

c++ - C++ 中的取消引用结构数组项

node.js - 使用 webpack 转译 Node 服务器和 socket.io

mysql - 相关子查询显示计数列

MySQL 将逗号分隔值从一列移动到另一列

perl - 如何在 Perl 构造函数中定义一个空数组?

node.js - 在 Node.js 中使用 fast-csv 包读取和写入 CSV

javascript - Electron:app.on 'open-file' 的 Windows 替代品

mysql - 为什么这个 LEFT JOIN 消除了另一个表中没有任何内容的记录?

php - 用户数据库 - 有效和无效请求