跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • order by 失效问题
未分類
6 3 月 2021

order by 失效问题

order by 失效问题

資深大佬 : Leo818 4

SELECT
SUM( IFNULL( r.read_total, 0 ) ) AS ReadCount,
SUM( IFNULL( r.get_total, 0 ) ) AS GetCount
FROM
report_promote_detail AS r
LEFT JOIN pl_promote AS p ON r.promote_id = p.id
WHERE
r.planet_id = 45
AND r.date
GROUP BY
r.promote_id
ORDER BY
ReadCount + GetCount DESC

以上代码,使用两个数的和进行排序结果不对

目前可以有两种方式解决这个问题
1 、
ReadCount + GetCount 换成 SUM( IFNULL( r.read_total, 0 ) ) +SUM( IFNULL( r.get_total, 0 ) )
排序结果是正确的
2 、
SELECT 中 SUM( IFNULL( r.read_total, 0 ) ) +SUM( IFNULL( r.get_total, 0 ) ) AS Total …… ORDER BY Total DESC
这个结果也没问题

请教下这个是什么情况,为啥两个别名相加不行呢?(之前也这样做过,但是可以,猜测是因为 SUM 函数或者 GROUP BY ?)

大佬有話說 (6)

  • 資深大佬 : beichenhpy

    加个括号试试?

  • 資深大佬 : beichenhpy

    select sum(count2) as c1,
    sum(count1) as c2
    from test
    group by type
    order by c1 + c2 desc
    (报错)[42S22][1247] Reference ‘c1’ not supported (reference to group function)

  • 資深大佬 : beichenhpy

    应该和 聚合函数 有关。。好像聚合函数别名不能 order by 。。

  • 主 資深大佬 : Leo818

    @beichenhpy 谢谢你的回复,请问下是怎么得到的这个错误提示呢,我用 Navicat 执行是正常的没有报错,要是有报错提示,可能我就没那么纠结这个问题了

  • 資深大佬 : beichenhpy

    @Leo818 我用 datagrip 写的。。不懂为啥你不报错。。同事用 oracle 都不允许 order by 使用别名。。

  • 主 資深大佬 : Leo818

    @beichenhpy 我朋友试了下,在他们那里也报错,他们用的是 mysql 5.X,我的是 mysql 8.x 就不报错,莫非是我版本问题,又或者我用的是假的?哈哈哈哈,太坑了,要是早就报错,我也不至于那么纠结

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具