MySQL,按动态字段排序

Dmy*_*nko 1 mysql sql

我想计算某些语言的网站以获取统计信息并使用此查询:

SELECT `language_id` , count( * ) AS 'num'
FROM sites
WHERE `language_id` != 0
GROUP BY `language_id`
ORDER BY 'num' ASC
Run Code Online (Sandbox Code Playgroud)

但结果不按num字段排序.我的SQL出了什么问题?

egg*_*yal 5

问题是您num使用单引号'字符引用别名,该字符恰好在创建别名时有效,但在ORDER BY子句中被视为文字字符串:因为它在结果中不变,因此不会影响排序顺序.反引号字符在两个子句中都有效.尝试改为:

SELECT `language_id` , count( * ) AS `num`
FROM sites
WHERE `language_id` != 0
GROUP BY `language_id`
ORDER BY `num` ASC
Run Code Online (Sandbox Code Playgroud)