1

有没有办法用node-mysql返回单列?我正在寻找类似于PDOfetchColumn的东西。

例如,假设我有以下查询:

database.query("SELECT id FROM user", function(error, row) {
  console.log(row);
});

这将导致:

[{id: 1}, {id: 2}, {id: 3}, ...]

相反,我想:

[1, 2, 3, ...]

我可以运行一个循环来提取数据,这就是我一直在做的事情,但我发现这会一次又一次地出现,所以我想知道是否有一个简单的解决方案。

4

1 回答 1

2

您可能可以以一种优雅的方式将自己的函数添加到数据库类中,但是由于 Javascript 具有功能支持,因此一种非侵入性的方式是将接收结果的函数包装在一个删除密钥的包装函数中;

single_value = function(fn) {
  return function(e,r) {
    for(var k in r)
      break;
    return fn(e, k === undefined ? undefined : r[k]);
  }
}

这样,您可以将普通查询函数称为;

database.query("SELECT id FROM user", single_value(function(error, row) {
  console.log(row);
}));

1
2
3
...
于 2013-06-16T06:10:35.553 回答