php - Doctrine :按与列同名的别名排序

标签 php mysql doctrine doctrine-1.2

我有以下 DQL (Doctrine1.2):

$dql->select('sum(t.column1) column1, t.column2')
    ->from('Table t')
    ->groupBy('t.column2')
    ->orderBy('column1');

但生成的 SQL 与以下 DQL 相同:

$dql->select('sum(t.column1) column1, t.column2')
    ->from('Table t')
    ->groupBy('t.column2')
    ->orderBy('t.column1'); //Ordered by column1 not by sum(t.column1)

是否可以强制 Doctrine 使用别名 column1 而不是列名 t.column1

我需要这个,因为我希望两个非常相似的 DQL 的模型具有相同的输出格式。 (最近由同一模板呈现)。另一个 DQL 如下所示:

$dql->select('t.column1, t.column2')
    ->from('Table t')
    ->orderBy('t.column1');

可能的解决方法是选择 sum(t.column1) 两次。第一次使用别名 column1,第二次使用其他别名,为什么在 passwd 之后到 orderBy 函数,但它看起来不像是最清晰的解决方案。

有什么建议吗?

谢谢

最佳答案

你能试试这个方法吗?只需将“sum(t.column1)”放在排序依据中,而不是尝试使用别名:

$dql->select('sum(t.column1) as column1, t.column2')
    ->from('Table t')
    ->groupBy('t.column2')
    ->orderBy('sum(t.column1)');

关于php - Doctrine :按与列同名的别名排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4668476/

相关文章:

php - 如何从另一台服务器上的文件存档恢复 Drupal 站点?

mysql - 字符集服务器和mysql的配置文件

php - 从父项中删除子项集合

php - 如何定义 Doctrine 中的 n-m 关系?

Laravel 数据库迁移列更改为 Unique 和 Nullable 导致错误

javascript - DNI 根据登陆页面显示 div,在整个 session 中继续显示 div

php - 在 php 中处理数字输入失败

php类不工作的功能

python - 如何成功安装mysqlclient

javascript - $.getJSON 数据放入数组