【问题标题】:Returning a column with node-mysql (like fetchColumn in PDO)返回带有 node-mysql 的列(如 PDO 中的 fetchColumn)
【发布时间】:2023-03-16 10:22:01
【问题描述】:

有什么方法可以返回带有node-mysql 的单列?我在PDO 中寻找类似于fetchColumn 的东西。

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

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

这将导致:

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

相反,我想:

[1, 2, 3, ...]

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

【问题讨论】:

    标签: php mysql node.js pdo node-mysql


    【解决方案1】:

    您可能会以一种优雅的方式将自己的函数添加到数据库类中,但是由于 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
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 2014-12-10
      • 2019-06-22
      相关资源
      最近更新 更多