|
Тема
|
mySQL -> ORDER BY
|
|
Автор |
Dakota (отверт) |
Публикувано | 03.01.02 20:10 |
|
Имам питане за една mySQL заявка.
Искам да подредя таблицата по поле, но така, че да сложи равните на N id-та най-отгоре. Демек да обединя тези две заявки в една:
select * from blabla where hid=6;
select * from blabla where hid (not(hid=6));
Така че да излязат първо записите, за които hid=6, а после всички останали.
Никоя армия не може да победи идея, чието време е дошло.
| |
Тема
|
Re: mySQL -> ORDER BY
[re: Dakota]
|
|
Автор |
Eмилиo (Вече нормален!) |
Публикувано | 04.01.02 09:08 |
|
При SQL е възможно следното обединение:
select * from blabla where hid=6
UNION
select * from blabla where hid<>6
но при него колоните трябва да са еквивалентни и неможеш да използваш ORDER BY!
При InterBase, не иска да покаже първо първата а после втората заявка, а ги сортира по реда на показаните колони, но опитай в MySql дали пък няма да стане
| |
Тема
|
Re: mySQL -> ORDER BY
[re: Dakota]
|
|
Автор |
bofh (°) (_) (°) |
Публикувано | 04.01.02 10:24 |
|
select
if(hid=6,1,2) as a,
hid
from
blabla
order by a,hid
bofh
| |
Тема
|
Re: mySQL -> ORDER BY
[re: Eмилиo]
|
|
Автор |
salle (Един такъв) |
Публикувано | 04.01.02 11:09 |
|
MySQL поддържа UNION от 4.00 нататък
и то по описания от теб начин.
Винаги показва първо първата таблица после втората и т.н.
Linux is like a wigwam - No Windows, No Gates, Apache inside
| |
|
Това работи. (Другото решение дава грешка)
Каква е идеята на (..,1,2)?
Никоя армия не може да победи идея, чието време е дошло.
| |
Тема
|
Re: 10x
[re: Dakota]
|
|
Автор |
bofh (°) (_) (°) |
Публикувано | 04.01.02 22:39 |
|
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
| |
Тема
|
Re: mySQL -> ORDER BY
[re: bofh]
|
|
Автор |
ViruS (™) |
Публикувано | 24.01.02 15:47 |
|
ili naprawo
select
*
from
blabla
order by
hid=6 DESC
ViruS
| |
Тема
|
Re: mySQL -> ORDER BY
[re: ViruS]
|
|
Автор |
salle (Един такъв) |
Публикувано | 24.01.02 17:07 |
|
С уточнението, че това ще сложи редовете с
id = 6 на първо място, но всички други ще бъдат в "произволен" ред
Linux is like a wigwam - No Windows, No Gates, Apache inside
| |
Тема
|
Re: Бърза проверка...
[re: salle]
|
|
Автор |
salle (Един такъв) |
Публикувано | 24.01.02 17:12 |
|
...показа, че 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
| |
|
|
|
|