在mysql中替换列值

时间:2014-11-18 00:18:38

标签: mysql

我的示例查询:

SELECT User.id, User.name, MAX(Track.id) as track_id 
FROM users AS User 
    LEFT JOIN tracks AS Track ON (User.id = Track.user_id) 
GROUP BY Track.id

我可以将MAX(Track.id)替换为"适合"它在Track?例如。像MAX(Track.id) as Track.id这样的东西我可以做ORDER BY Track.id

我需要这个,因为我已经拥有动态ORDERWHERE的所有APP逻辑,并且只有一种情况我需要做GROUP BY,我也使用ORM完成所有这些工作。所以我想保留所有APP逻辑,但在特定情况下添加聚合字段和GROUP BY,在我的APP中仍然使用Track.id,意思MAX(Track.id)是否可能?

1 个答案:

答案 0 :(得分:1)

在命名别名或选择像这样的列

中使用反引号(`)
SELECT User.id, User.name, Track.name, MAX(Track.id) as `Track.id` 
from users as User 
LEFT JOIN tracks as Track ON (User.id = Track.user_id) 
GROUP BY Track.id

反引号用于转义MySQL保留字。