MySQL按顺序排序

时间:2012-07-24 10:05:51

标签: mysql sql sum sql-order-by

我已经解决了以下问题:

SELECT Event_id, SUM(Money) AS 'Total Money'
FROM prize
GROUP BY Event_id
ORDER BY 'Total Money' DESC;

然而,它没有按总金额排序。如果我省略''标记并调用Total_Money列,它可以正常工作:

SELECT Event_id, SUM(Money) AS Total_Money
FROM prize
GROUP BY Event_id
ORDER BY Total_Money DESC

这是为什么? 有没有办法调用Total Money列并按我想要的方式排序?

3 个答案:

答案 0 :(得分:1)

当你写SELECT Event_id, SUM(Money) AS Total Money时,你给了别名Total Money to Sum(Money)。
如果你用引号写出总金额,那么你就把它当作字符串,这是错误的。

答案 1 :(得分:0)

SELECT Event_id, SUM(Money) AS `Total Money`
FROM prize
GROUP BY Event_id
ORDER BY `Total Money` DESC;

按'总钱'排序基本上是将一些字符串命令给MySQL。当您在引号中放入任何内容时,您将创建一个字符串。创建别名时,处理以某些保留字命名的列名(例如user) - 使用反引号:

`user`

答案 2 :(得分:0)

单引号定义了一个字符串值,因此在您的订单中,您并没有说order by this column您说order by the string 'Total Money'当然不会有效。

如果你真的想要使用空格,可以使用反引号而不是单引号,如

ORDER BY `Total Money`