1

我有一个 DQL 查询,其中包含一个SELECT仅用于排序的表达式:

SELECT u, (u.orderTotal / u.orderCount) AS orderAverage
FROM User u
ORDER BY orderAverage

我必须使用这个技巧,因为到目前为止,Doctrine 不支持按表达式排序

这很好用,预计由于此问题范围之外的原因,我只想ugetResult()返回:

[0] => object(User)
[1] => object(User)

而不是包含uand的嵌套数组orderAverage

[0] =>
       [0] => object(User)
       ['orderAverage'] => float
[1] =>
       [0] => object(User)
       ['orderAverage'] => float

我以为我在某处读到有一个 DQL 关键字用于在结果中不返回表达式,但我未能在文档中找到它。它会是这样的:

SELECT u, IGNORE (u.orderTotal / u.orderCount) AS orderAverage
FROM ...

那存在吗,还是我做梦?

4

1 回答 1

1

好的,我终于设法在EBNF 文档中找到它。

正确的关键字是HIDDEN, 之后是AS:

SELECT u, (u.orderTotal / u.orderCount) AS HIDDEN orderAverage
于 2012-10-18T07:14:35.467 回答