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 に答える