簡體   English   中英

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

[英]MySQL: sort by multiple columns (distance and date)

我有一個距離(浮動)和最后在線(日期)的用戶表。

我想通過兩者的混合對用戶進行排序,給予在線日期更多的權重,以便結果將顯示用戶最近在線,然后最接近位置(最小距離)。

sql 這可能嗎? 還是需要彈性搜索之類的東西?

謝謝

在 MySQL 中,您可以構造一個度量。 像這樣的東西:

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

1.0 s 是您可以為加權目的設置的任意參數。

您可以按順序指定多於一列。 如果我理解你的問題是正確的。

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

類似的東西會幫助你

閱讀更多內容: https://www.mysqltutorial.org/mysql-order-by/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM