1

我对 SQL 查询的参数有疑问。在这种情况下,我从 ORDER BY 查询中得到了意想不到的结果。我在 OSX 上运行 PostgreSQL[1] 并运行 v1.0.3。

我有一个包含两列的表:name varchar,gophers int

插入的行是:("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")我会通过插入顺序(“Alice”,“Bob”)得到它们

为什么?

完整代码: 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)

我想知道您是否可以按 1 美元订购。我用谷歌搜索了一下,但找不到任何有用的东西。我知道这不是答案,但在我看来这可能是问题所在。如果 ORDER BY 支持参数,我希望我能找到一些东西。

于 2012-11-29T13:48:44.020 回答