mySQL -> ORDER BY
8 отговора
573 прегледа
mySQL -> ORDER BY
Имам питане за една mySQL заявка.
Искам да подредя таблицата по поле, но така, че да сложи равните на N id-та най-отгоре. Демек да обединя тези две заявки в една:
select * from blabla where hid=6;
select * from blabla where hid (not(hid=6));
Така че да излязат първо записите, за които hid=6, а после всички останали.
Никоя армия не може да победи идея, чието време е дошло.
Искам да подредя таблицата по поле, но така, че да сложи равните на N id-та най-отгоре. Демек да обединя тези две заявки в една:
select * from blabla where hid=6;
select * from blabla where hid (not(hid=6));
Така че да излязат първо записите, за които hid=6, а после всички останали.
Никоя армия не може да победи идея, чието време е дошло.
Re: mySQL -> ORDER BY
При SQL е възможно следното обединение:
select * from blabla where hid=6
UNION
select * from blabla where hid<>6
но при него колоните трябва да са еквивалентни и неможеш да използваш ORDER BY!
При InterBase, не иска да покаже първо първата а после втората заявка, а ги сортира по реда на показаните колони, но опитай в MySql дали пък няма да стане
select * from blabla where hid=6
UNION
select * from blabla where hid<>6
но при него колоните трябва да са еквивалентни и неможеш да използваш ORDER BY!
При InterBase, не иска да покаже първо първата а после втората заявка, а ги сортира по реда на показаните колони, но опитай в MySql дали пък няма да стане
Re: mySQL -> ORDER BY
select
if(hid=6,1,2) as a,
hid
from
blabla
order by a,hid
bofh
if(hid=6,1,2) as a,
hid
from
blabla
order by a,hid
bofh
Re: mySQL -> ORDER BY
MySQL поддържа UNION от 4.00 нататък
и то по описания от теб начин.
Винаги показва първо първата таблица после втората и т.н.
Linux is like a wigwam - No Windows, No Gates, Apache inside
и то по описания от теб начин.
Винаги показва първо първата таблица после втората и т.н.
Linux is like a wigwam - No Windows, No Gates, Apache inside
10x
Това работи. (Другото решение дава грешка)
Каква е идеята на (..,1,2)?
Никоя армия не може да победи идея, чието време е дошло.
Каква е идеята на (..,1,2)?
Никоя армия не може да победи идея, чието време е дошло.
Re: 10x
ami za redovete v koito hid=6 stoinostta na kletkata v kolonata shte e 1, a za vsi4ki ostanali shte e 2. Order by podrezhda pyrvo po tazi kolona, a 1 e predi 2 ...
bofh
bofh
Re: mySQL -> ORDER BY
С уточнението, че това ще сложи редовете с
id = 6 на първо място, но всички други ще бъдат в "произволен" ред
Linux is like a wigwam - No Windows, No Gates, Apache inside
id = 6 на първо място, но всички други ще бъдат в "произволен" ред
Linux is like a wigwam - No Windows, No Gates, Apache inside
Re: Бърза проверка...
...показа, че MySQL се справя със:
select ... order by id = 6 desc, id desc;
6
0
1
2
и ... id = 6 desc, id asc;
6
999
998
997
Linux is like a wigwam - No Windows, No Gates, Apache inside
select ... order by id = 6 desc, id desc;
6
0
1
2
и ... id = 6 desc, id asc;
6
999
998
997
Linux is like a wigwam - No Windows, No Gates, Apache inside