(SELECT * FROM atable WHERE username = 'John')
UNION ALL
(SELECT * FROM atable WHERE username <> 'John' ORDER BY username)
Albo bardziej ogólnie:
(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)
Jeśli masz uniknąć unii z jakiegoś powodu, to wolniej kod będzie również pracować:
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
W SQL serwera, na którym Składnia jest nieco inna, podzapytanie:
SELECT TOP 1 id FROM atable ORDER BY username DESC
zgadzam się z bluefeet. Ponadto, jeśli ludzie nie odpowiedzą na twoje pytania, odpowiedz na nie sam. – Chris
możliwy duplikat [sortowania według wartości - ORDER BY] (http://stackoverflow.com/questions/4138430/sorting-by-value-specific-order-by) – GSerg