簡體   English   中英

如何按一列排序並使具有相同第二列的元素連續?

[英]How to order by one column and make elements with same 2nd column contino uous?

我有兩列idresolvedId 現在,我想訂購由列id desc ,但希望同列resolvedId出現另一個之后。 到目前為止嘗試了group by但我的理解是它只能用於匯總函數,例如sum等。在mysql中這樣做的任何簡單方法? 我的另一個選擇是將它們作為單獨的結果集放入php中,然后根據resolvedId進行插入。 id是唯一的auto_increment,resolveId將成為id之一。 樣本數據

id| name| resolvedId
1   nam    1
2   bam    4
3   sam    3
4   dam    4
5   ham    3
6   ram    4

需要輸出

id|  name|  resolvedId
6    ram    4
4    dam    4
2    bam    4
5    ham    3
3    sam    3
1    nam    1

樣本數據2

id| name| resolvedId
1   nam    1
2   bam    4
3   sam    3
4   dam    4
5   ham    3
6   ram    1

需要輸出

id|  name|  resolvedId
6    ram    1
1    nam    1
5    ham    3
3    sam    3
4    dam    4
2    bam    4

這是一個可能適當的解決方案:

select tbl.* from
    ( select MAX(id) as m, resolvedId from tbl GROUP BY resolvedId) as driver
    JOIN tbl 
    ON driver.resolvedId = tbl.resolvedId 
    ORDER BY driver.m desc, tbl.id desc, driver.resolvedId;

與您合作最新的示例http://sqlfiddle.com/#!2/e3a2f/1http://sqlfiddle.com/#!2/7fb2ce/4

根據我的理解,如果沒有對數據集的進一步限制,就無法獲得所要求的內容。 假設您有以下數據:

id    resolvedId
1              4
2              3
3              4

通過id desc訂購它只會導致已停止的resolvedId

暫無
暫無

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

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