提问者:小点点

MySQL:按多列排序(距离和日期)


我有一个用户表与距离(浮动)和最后在线(日期)。

我想通过两者的混合来排序用户,给在线日期更多的权重,这样结果将显示用户最近在线,然后最近的位置(最小的距离)。

SQL有可能做到这一点吗? 还是需要弹性搜索之类的东西?

谢谢


共2个答案

匿名用户

在MySQL中,您可以构造一个度量。 像这样的东西:

select t.*
from t
order by 1.0 * abs(distance - @location) + 1.0 * datediff(curdate(), last_online) asc
limit 1

1.0是任意参数,您可以为加权目的设置这些参数。

匿名用户

您可以按order BY指定多个列。 如果我对你的问题理解正确的话。

SELECT
    contactLastname,
    contactFirstname
FROM
    customers
ORDER BY
    contactLastname DESC,
    contactFirstname ASC;

这样的东西会对你有帮助的

欲了解更多信息,请访问:https://www.mysqltutorial.org/mysql-order-by/