【发布时间】: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 是数字。
什么是正确的语法?
【问题讨论】:
我在表 T 中有两个整数字段 A 和 B。
我想做类似“SELECT * FROM T ORDER BY f(A,B) DESC”的事情
其中f(A,B) 是 A 和 B 的线性组合...即f(A,B) = mA + nB,其中 m 和 n 是数字。
什么是正确的语法?
【问题讨论】:
尽量保持简单,使用以下内容:
SELECT * FROM T ORDER BY (m * A + n * B) DESC
其中 m 和 n 由您负责。
【讨论】:
你有两个选择(至少):
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 中为您工作。第一个应该可以工作,即使第二个不行。
【讨论】: