MySQL |按计算的 select 值排序
MySQL | Order By computed select value
在 mysql 中是否可以使用计算的 select 值进行排序?例如,我有类似于以下内容的内容:
SELECT members.*, ROUND(formula for finding distance) AS distance
FROM members
ORDER BY distance ASC
但是在执行查询时,我收到一条消息,说明 Column not found: 1054 Unknown column 'distance' in 'order clause'
您不能在 order by
子句中使用别名。但是,您可以只使用相同的表达式(顺便说一句,请注意 order by
是两个词,而不是一个):
SELECT members.*, ROUND(formula for finding distance) AS distance
FROM members
ORDER BY ROUND(same formula for finding distance) ASC
尝试这样的事情:
SELECT members.*, ROUND(formula for finding distance) AS distance
FROM members
ORDER BY ROUND(formula for finding distance) ASC
在MySQL中当然可以在ORDER BY
中使用别名。这对于距离计算非常典型:
SELECT members.*, ROUND(formula for finding distance) AS distance
FROM members
ORDER BY distance ASC;
大多数数据库都允许这种构造。
这里是 Rextester 演示它的工作原理。
在 mysql 中是否可以使用计算的 select 值进行排序?例如,我有类似于以下内容的内容:
SELECT members.*, ROUND(formula for finding distance) AS distance
FROM members
ORDER BY distance ASC
但是在执行查询时,我收到一条消息,说明 Column not found: 1054 Unknown column 'distance' in 'order clause'
您不能在 order by
子句中使用别名。但是,您可以只使用相同的表达式(顺便说一句,请注意 order by
是两个词,而不是一个):
SELECT members.*, ROUND(formula for finding distance) AS distance
FROM members
ORDER BY ROUND(same formula for finding distance) ASC
尝试这样的事情:
SELECT members.*, ROUND(formula for finding distance) AS distance
FROM members
ORDER BY ROUND(formula for finding distance) ASC
在MySQL中当然可以在ORDER BY
中使用别名。这对于距离计算非常典型:
SELECT members.*, ROUND(formula for finding distance) AS distance
FROM members
ORDER BY distance ASC;
大多数数据库都允许这种构造。
这里是 Rextester 演示它的工作原理。