【发布时间】:2021-02-20 06:17:12
【问题描述】:
我一直在尝试将此查询结果保存到变量中,但没有成功。当我直接从工作台运行查询时,我得到了结果,如果我从节点运行它,我得到以下结果
set @count=(select column from table where value = 'value');
SET @row_number = 0;
select column from
(SELECT
(@row_number:=@row_number + 1) AS num,
column
FROM
table where column is null
ORDER BY column)as a
where num <= @count
这段代码基本上是根据保存到@count 的值从tableA 中选择X 行
var dnum = [];
dbconn.query('SET @row_number = 0;' +
'set @count=(select column from table where column= "value");' +
'select column from \n '+
'(SELECT \n' +
' (@row_number:=@row_number + 1) AS num, \n' +
' column \n' +
'FROM \n' +
' table where column is null \n' +
'ORDER BY column )as a \n' +
'where num <= @count ;',function(err,rows,result) {
console.log(rows)
dnum = rows or //dnum.push(rows)
})
console.log(dnum)
样本输出:
[
OkPacket {
fieldCount: 0,
affectedRows: 0,
insertId: 0,
serverStatus: 10,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
},
OkPacket {
fieldCount: 0,
affectedRows: 0,
insertId: 0,
serverStatus: 10,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
},
[
RowDataPacket { number: '123456789' },
RowDataPacket { number: '098745612' }
]
]
我想将返回的 RowDataPacket 结果保存到一个变量中以在其他地方使用。
谢谢
【问题讨论】:
-
提示:考虑使用Sequelize 和 Promises 来帮助组织您的代码,而不是原始驱动程序和回调函数。
-
只是一个建议。连接nodejs和mysql请使用
mysql2github.com/mysqljs/mysql
标签: javascript mysql node.js