MySQL: 按两个列的函数排序
我在表T里有两个整数字段A和B。
我想做类似于“SELECT * FROM T ORDER BY f(A,B) DESC
”这样的查询。
这里的f(A,B)
是A和B的线性组合,也就是说f(A,B) = mA + nB
,其中m和n是一些数字。
请问正确的语法是什么?
2 个回答
5
尽量保持简单,可以使用以下内容:
SELECT * FROM T ORDER BY (m * A + n * B) DESC
这里的 m 和 n 需要你自己来负责。
13
你有两个选择(至少有这两个):
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中使用。第一种方法即使第二种不行也应该能用。