如何在MySQL中复杂化ORDER BY

时间:2012-03-12 19:32:51

标签: mysql sql-order-by

有没有办法在MySQL中自定义`ORDER BY`? DESC和ASC太简单了,无法完成订购。

我想给每个字段赋予权重并计算要订购的金额。

例如,我有一个包含字段A,B和C的表.A的权重是2,B是1,C是3.所以结果应该是ORDER BY 2 * A + B + 3 * C DESC / ASC 。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

SELECT a, b, c, (2*a+b+3*c) combined_weighting FROM table ORDER BY combined_weighting DESC;

答案 1 :(得分:0)

一旦db服务器将数据返回给流,ORDER BY用于按特定顺序返回数据。您正在尝试在ORDER BY上执行一个复杂的公式,该公式应该在GROUP BY子句中考虑并且很可能在TEMP表中