(SELECT * FROM atable WHERE username = 'John')
UNION ALL
(SELECT * FROM atable WHERE username <> 'John' ORDER BY username)
Hoặc tổng quát hơn:
(SELECT * FROM atable ORDER BY username DESC LIMIT 1)
UNION ALL
(SELECT * FROM atable WHERE id NOT IN (
SELECT id FROM atable ORDER BY username DESC LIMIT 1)
ORDER BY username)
Nếu bạn có để tránh sự kết hợp đối với một số lý do, mã chậm này cũng sẽ làm việc:
SELECT * FROM atable
ORDER BY
CASE WHEN id IN (SELECT id FROM atable ORDER BY username DESC LIMIT 1)
THEN 0 ELSE 1 END
, username
Trong SQL-server cú pháp hơi khác, truy vấn phụ là:
SELECT TOP 1 id FROM atable ORDER BY username DESC
Tôi đồng ý với bluefeet. Ngoài ra, nếu mọi người không trả lời câu hỏi của bạn, hãy tự trả lời. – Chris
có thể trùng lặp [sắp xếp theo giá trị cụ thể - ORDER BY] (http://stackoverflow.com/questions/4138430/sorting-by-value-specific-order-by) – GSerg