две отделни подреждания

obqvi_in

Registered
[sql]SELECT * FROM table ORDER BY address = '' DESC, id DESC[/sql]
От една таблица искам да подредя най-отгоре колоната 'address' в която няма нищо написано и след това останалите по 'id' в низходящ ред.
 
На английски това, което ти трябва, може да го потърсиш в гугъл със следните ключови думи:

mysql order by show empty first

И съответно като възнаграждение за усилията си получаваш един достатъчно задоволителен резултат: https://stackoverflow.com/q/5825804

[sql]select * from table
order by if(field = '' or field is null,1,0),field[/sql]
(като разбира се тук е необходимо да обърнеш проверката, за да получиш обратния ефект)

Ако това все пак се окаже недостатъчно, гугъл дава и второ предложение: https://stackoverflow.com/a/9307657

[sql]SELECT *
FROM TableX
ORDER BY (requestId IS NOT NULL)
, requestId DESC
[/sql]

Където пък трябва да заместиш с имената на твоите полета.
 
Едно от двете трябва да ти свърши работа :D Не съм ги пробвал ;д
[sql]SELECT * FROM table ORDER BY address asc, id DESC[/sql]

[sql]SELECT * FROM table ORDER BY address desc, id desc[/sql]
 
joTunkiq каза:
Едно от двете трябва да ти свърши работа :D Не съм ги пробвал ;д
[sql]SELECT * FROM table ORDER BY address asc, id DESC[/sql]

[sql]SELECT * FROM table ORDER BY address desc, id desc[/sql]
Авторът иска да сортира по главно по id, като просто празните address излязат отгоре.

Както си го показал, ще се сортира главно по address, а по id ще се сортира единствено ако адресите имат еднакви стойности, а автора не го интересуват не-празните адреси да са сортирани.
 

Горе