要對一個資料進行分頁,所以需要先查出串列資料。
表內資料如下: id,父id,創建日期。
要求:父級下方為子級,同級之間按時間倒序排序。
目前陳述句如下:
SELECT a.id,a.PARENT_ID,a.CREATE_DATE FROM XXX a
ORDER BY CASE WHEN a.PARENT_ID=0 THEN a.ID ELSE a.PARENT_ID END DESC ,a.PARENT_ID,a.CREATE_DATE DESC;
欲將id為2,1的資料排到id為5的上邊,請問如何修改? 謝謝
PS:我們用的是mysql

uj5u.com熱心網友回復:
SELECT
a.*
FROM
text a, -- 主表
text b -- 父表
WHERE
-- 父節點跟父節點關聯, 子節點與對應父節點關聯
CASE a.parent_id WHEN 0 THEN a.id = b.id ELSE a.parent_id = b.id END
ORDER BY
-- 按照父節點時間倒序排序
b.create_date DESC,
-- 同父節點下,按照時間倒序排序,父節點排第一位,所以時間為2999年
CASE a.parent_id WHEN 0 THEN '2999-12-31 23:59:59' ELSE a.create_date END DESC
uj5u.com熱心網友回復:
我把order by 改成了 ORDER BY b.create_date DESC,a.PARENT_ID,a.CREATE_DATE DESC
可以實作,謝謝。
uj5u.com熱心網友回復:
SELECTa.id,
a.PARENT_ID,
a.CREATE_DATE
FROM
XXX a
ORDER BY a.PARENT_ID,
a.ID,
a.CREATE_DATE DESC;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/78265.html
標籤:MySQL
上一篇:兩表查詢結果合并
