У меня есть таблица с таким содержимым
id |guid |sort|
------|------------------------------------|----|
239980| | 1|
354533|666a9a7d-b2ed-11eb-8b8b-9c5c8e4f1f67| 0|
354538| | 2|
354540|787a9a7d-b2ed-11eb-8b8b-9c5c8e4f1f67| 1|
Я хочу отсортировать записи по полю sort но так что бы записи у которых guid != NULL были отсортированы по своему sort и были всегда в верху а остальные были ниже.
Короче говоря я хочу сделать с начало так
SELECT id,guid,sort from images where model_id = 102188 and guid is not null order BY sort DESC;
id |guid |sort|
------|------------------------------------|----|
354540|787a9a7d-b2ed-11eb-8b8b-9c5c8e4f1f67| 1|
354533|666a9a7d-b2ed-11eb-8b8b-9c5c8e4f1f67| 0|
Потом так
SELECT id,guid,sort from images where model_id = 102188 and guid is null order BY sort DESC;
id |guid|sort|
------|----|----|
354538| | 2|
239980| | 1|
Мне надо как то объединить эти два запроса, если проще склеить их результат так что бы получилось по итогу
id |guid |sort|
------|------------------------------------|----|
354540|787a9a7d-b2ed-11eb-8b8b-9c5c8e4f1f67| 1|
354533|666a9a7d-b2ed-11eb-8b8b-9c5c8e4f1f67| 0|
354538| | 2|
239980| | 1|
Обратите внимание что сначала отсортированы записи с полем guid а потом те у которых нет.
Я думал объединить запросы с помощью UNION или UNION ALL но беда в том что оно так не работает
SQL Error [1221] [HY000]: Incorrect usage of UNION and ORDER BY
при использование UNION нельзя использовать ORDER BY - собственно как можно сделать то что я хочу?