首页 > 解决方案 > 如何仅获取字符串化 MySQL 查询结果的值?

问题描述

执行此查询后:

con.query("SELECT name FROM members WHERE id=1", function(err, rows, fields) {
   console.log(rows); 
});

这就是我得到的:

[ RowDataPacket { name: 'John' } ]

我希望只有一个记录,我只想得到John。我怎么做?

标签: mysqlnode.jsstringify

解决方案


根据包的设计,如果不编写自己的附加函数并row通过它们传递对象,则无法获得所需的结果格式mysqljs/mysql。在标准SELECT查询中,结果始终是一个对象。

使用该功能有一些解决方法streamrows[0].name下面是一个示例,但与仅在标准查询中访问值相比,您最终会得到更多的代码行。

let the_query = con.query('SELECT name FROM members WHERE id = 1;');
the_query
.on('result', function(row) {
  console.log('row.name:', row.name);
  // expected in log:
  // row.name: John
})
.on('end', function() {
  // this chained event can be excluded
  // here for demo purposes
  console.log('all done');
});

推荐阅读