Node.JS + MySQL - 组合查询以定义变量和选择数据

Posted

技术标签:

【中文标题】Node.JS + MySQL - 组合查询以定义变量和选择数据【英文标题】:Node.JS + MySQL - Combining queries for defining vars and selecting data 【发布时间】:2018-08-26 02:35:17 【问题描述】:

我有一个在 phpMyAdmin 中完美运行的查询:

SET @row_number=0; 
SELECT * FROM blah blah @row_number blah blah;

但是,当我将它放入 Node.JS 时,我不能使用简单的 con.query("SET @row_number=0; SELECT * FROM blah blah @row_number blah blah;"),因为从技术上讲,那里有 2 个查询。所以我试着做:

con.query("SET @row_number=0")
con.query("SELECT * FROM blah blah @row_number blah blah")

但是,这会将其视为第一个查询甚至不存在。如何将这些查询组合成一个查询?或者,还有其他解决方法吗?

【问题讨论】:

你想generate a row number column吗?否则,看看this。 我正在尝试这样做,但是,从那个链接,我提出了查询SELECT * FROM (SELECT serverusers.serverID, serverusers.userID, serverusers.xpTotal, users.bot @curRow := @curRow + 1 AS row_number FROM users INNER JOIN serverusers ON users.userID = serverusers.userID WHERE users.bot = 'false' && serverID = 318467989655781389 ORDER BY xpTotal DESC) AS t WHERE t.userID = 289233475481894914 JOIN (SELECT @curRow := 0) r); 我做错了什么吗?因为'@curRow := @curRow + 1 AS row_number FROM users INNER JOIN serverusers ON users.'附近有语法错误。 【参考方案1】:

对 node-mysql 试试这个:

var connection = mysql.createConnection(multipleStatements: true);

(取自this答案)

【讨论】:

我使用的是 mysql 库而不是 node-mysql 库。还能用吗?

以上是关于Node.JS + MySQL - 组合查询以定义变量和选择数据的主要内容,如果未能解决你的问题,请参考以下文章

node.js,express - 在循环中以同步方式一个接一个地执行mysql查询

如何使用 Node.js 查询 mysql 数据库以通过 url 中的名称获取特定用户(字段),而不仅仅是通过 ID

Node.JS 再次运行 Node-Mysql 查询而不停止 node.js 脚本

使用 Node.JS 查询 MySQL 并在网页中显示结果

Node.js mysql在函数外导入查询结果[重复]

node.js+mysql实现分库分表存查数据: