存在帶列的訂單表:status
,created_at
狀態列具有值:new,processing,other。MySQL根據條件排列
問題是選擇所有訂單,首先在狀態處理之後選擇狀態爲新的訂單,然後選擇所有訂單。 新的加工訂單應created_at
升序排列,其他所有訂單由created_at
降序排列。 我嘗試了許多不同的方法,但堅持每一個。
例如試圖用聯合組合兩個選擇,但事實證明,工會忽略內部查詢選擇順序。
或者其他變種:
SELECT orders.status, orders.created_at FROM `orders` ORDER BY status = 'new' DESC, status = 'processing' DESC,
CASE
WHEN (orders.status='new' or orders.status='processing')
THEN -created_at
ELSE created_at
END;
不工作過。
@ lad2025我認爲運首先要對新訂單,然後用狀態的處理,那麼所有的人,你的情況下,當將第一次把加工訂單。一個'FIELD(狀態,'處理','新')DESC'可以替代,我喜歡兩條線,但我會嘗試哪一個更好 – fthiella