Autor Zpráva
Michal.s
Profil *
Zdravim,

mam v tabulce tyto hodnoty:

id id_parent date
1 0 2006-06-20 11:46:37
2 1 2006-06-20 11:46:37
3 0 2006-06-21 11:46:37
4 0 2006-06-21 11:46:43
5 1 2006-06-21 11:47:44
6 0 2006-06-21 11:47:48
7 3 2006-06-21 11:49:01
8 1 2006-06-21 12:07:40
9 2 2006-06-21 12:07:42

A potreboval bych je seradit takto:

nejdrive seradit cokoliv v id_parent co nabyva hodnot mimo 0 od nejstarsi az po nejnovejsi a pak vse v id_parent rovno 0 od nejnovejsi az po nejstarsi. Doufam, ze jste me pochopili.


id id_parent date
2 1 2006-06-20 11:46:37
5 1 2006-06-21 11:47:44
7 3 2006-06-21 11:49:01
8 1 2006-06-21 12:07:40
9 2 2006-06-21 12:07:42
6 0 2006-06-21 11:47:48
4 0 2006-06-21 11:46:43
3 0 2006-06-21 11:46:37
1 0 2006-06-20 11:46:37

Dekuji za napady. Michal
Hugo
Profil
Radit muzes podle vice sloupcu timto stylem

order by `col1` ASC, ´col2´ DESC

vice zde
http://www.linuxsoft.cz/article.php?id_article=826
Michal.s
Profil *
Radit muzes podle vice sloupcu timto stylem

order by `col1` ASC, ´col2´ DESC

vice zde
http://www.linuxsoft.cz/article.php?id_article=826[/i]

To je me jasne, bohuzel tak jednoduse to nejde.
Hugo
Profil
A proc ne? Ty radky s nulou vyhodis pomoci podminky where.
Hugo
Profil
Aha uz jsem to pochopil. Asi bych to resil pres dva dotazy spojene pomoci union. V prvnim vezmes vsechny radky bez id rovno 0 a v druhe pridas ty s id rovno nula.
Michal.s
Profil *
takle mi to totiz nefunguje

$res = "(SELECT * FROM forum WHERE id_parent > 0 ORDER BY date)
UNION (SELECT * FROM forum WHERE id_parent=0)
ORDER BY date DESC";
Hugo
Profil
$res = "(SELECT *, date AS date_ord FROM forum WHERE id_parent > 0)
UNION (SELECT * FROM forum WHERE id_parent=0)
ORDER BY date_ord DESC, date ASC";

Toto by melo fungovat
Michal.s
Profil *
Dekuji za napad, ale skonci mi to chybou:
The used SELECT statements have a different number of columns
Kajman_
Profil *
order by id_parent=0, if(id_parent=0,-datum, datum)
Michal.s
Profil *
order by id_parent=0, if(id_parent=0,-datum, datum)

To je super, diky moc.
Akorat me to id_parent = 0, radi od nejstarsi , ja bych potreboval naopak... jeste jednou diky
Hugo
Profil
Jo, moje chyba, melo to byt takto

$res = "(SELECT *, date AS date_ord FROM forum WHERE id_parent > 0)
UNION (SELECT *, date FROM forum WHERE id_parent=0)
ORDER BY date_ord DESC, date ASC";

To je nevyhoda pouzivani * v selectu. Ale reseni od Kajmana_ je lepsi.
Kajman_
Profil *
Tak zkuste třeba...

order by id_parent=0, if(id_parent=0,now()-datum, datum)

byl to nástřel.
Kajman_
Profil *
order by id_parent=0, if(id_parent=0,null, datum), datum desc

tohle možná bude rychlejší než s now
Michal.s
Profil *
Kajman_ Dekuji moc, uz je to uplne na jednicku!
Toto téma je uzamčeno. Odpověď nelze zaslat.