1

SQL クエリのパラメータに問題があります。この場合、ORDER BY クエリから予期しない結果が得られます。私は OSX で PostgreSQL[1] を実行しており、v1.0.3 に移行しています。

name varchar、gophers int の2 つの列を持つテーブルがあります。

挿入される行: ("Alice", 2) および ("Bob", 1)

次のようにクエリを実行すると、必要なrows, err := db.Query("SELECT name FROM foo ORDER BY gophers")ものが得られます ("Bob", "Alice")

しかし、このように実行するとrows, err = db.Query("SELECT name FROM foo ORDER BY $1", "gophers")、挿入順 (「アリス」、「ボブ」) で取得されます

なんで?

完全なコード: http://paste2.org/p/2537881

[1] https://github.com/bmizerany/pq

4

1 に答える 1

2

これが問題であることはまったくわかりません。私がしたpsqlで

PREPARE  test (text) AS SELECT name FROM foo  ORDER BY $1;
EXECUTE test('a');

そして私は得た

 name  
 -------
 alice
 bob
 (2 rows)

ORDER BY $1 をしていただけないでしょうか。私はこれを少しグーグルで調べましたが、役に立つものは何も見つかりませんでした。これが答えではないことは知っていますが、これが問題かもしれないと私には思えます。ORDER BY がパラメーターをサポートしているかどうかについて何かを見つけられたらいいのにと思います。

于 2012-11-29T13:48:44.020 に答える