0

对于我遇到的问题,我已经解决了以下问题:

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 列并按我想要的方式排序?

4

3 回答 3

1

当你写的时候,SELECT Event_id, SUM(Money) AS Total Money你给 Sum(Money) 起了一个别名 Total Money。
如果您将 Total Money 写在引号中,那么您将其视为错误的字符串。

于 2012-07-24T10:12:23.107 回答
0
SELECT Event_id, SUM(Money) AS `Total Money`
FROM prize
GROUP BY Event_id
ORDER BY `Total Money` DESC;

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

`user`
于 2012-07-24T10:11:30.740 回答
0

单引号定义了一个字符串值,因此按照您的顺序,您并不是说order by this column您在说order by the string 'Total Money'哪个当然不起作用。

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

ORDER BY `Total Money`
于 2012-07-24T10:11:49.920 回答