MySQL:按两列的函数排序
Posted
技术标签:
【中文标题】MySQL:按两列的函数排序【英文标题】:MySQL: Order by a function of two columns 【发布时间】:2012-02-05 05:55:45 【问题描述】:我在表 T 中有两个整数字段 A 和 B。
我想做类似“SELECT * FROM T ORDER BY f(A,B) DESC
”的事情
其中f(A,B)
是 A 和 B 的线性组合...即f(A,B) = mA + nB
,其中 m 和 n 是数字。
什么是正确的语法?
【问题讨论】:
【参考方案1】:尽量保持简单,使用以下内容:
SELECT * FROM T ORDER BY (m * A + n * B) DESC
其中 m 和 n 由您负责。
【讨论】:
@JonathanLeffler -thanx,忘了星号 8-)【参考方案2】:你有两个选择(至少):
SELECT (n * A + m * B) AS C, *
FROM T
ORDER BY C DESC; -- or ORDER BY 1 DESC
或者:
SELECT *
FROM T
ORDER BY (n * A + m * B) DESC;
一个或另一个——可能两者都适用——应该在 mysql 中为您工作。第一个应该可以工作,即使第二个不行。
【讨论】:
以上是关于MySQL:按两列的函数排序的主要内容,如果未能解决你的问题,请参考以下文章