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