| Autor | Zpráva | ||
|---|---|---|---|
| Michal.s Profil * |
#1 · Zasláno: 13. 7. 2006, 10:29:35
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 |
#2 · Zasláno: 13. 7. 2006, 10:58:02
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 * |
#3 · Zasláno: 13. 7. 2006, 11:06:03
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 |
#4 · Zasláno: 13. 7. 2006, 11:11:45
A proc ne? Ty radky s nulou vyhodis pomoci podminky where.
|
||
| Hugo Profil |
#5 · Zasláno: 13. 7. 2006, 11:16:34
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 * |
#6 · Zasláno: 13. 7. 2006, 11:18:53
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 |
#7 · Zasláno: 13. 7. 2006, 11:31:16 · Upravil/a: Hugo
$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 * |
#8 · Zasláno: 13. 7. 2006, 11:43:02
Dekuji za napad, ale skonci mi to chybou:
The used SELECT statements have a different number of columns |
||
| Kajman_ Profil * |
#9 · Zasláno: 13. 7. 2006, 11:45:12
order by id_parent=0, if(id_parent=0,-datum, datum)
|
||
| Michal.s Profil * |
#10 · Zasláno: 13. 7. 2006, 11:53:54
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 |
#11 · Zasláno: 13. 7. 2006, 11:55:08
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 * |
#12 · Zasláno: 13. 7. 2006, 12:00:53
Tak zkuste třeba...
order by id_parent=0, if(id_parent=0,now()-datum, datum) byl to nástřel. |
||
| Kajman_ Profil * |
#13 · Zasláno: 13. 7. 2006, 12:01:56
order by id_parent=0, if(id_parent=0,null, datum), datum desc
tohle možná bude rychlejší než s now |
||
| Michal.s Profil * |
#14 · Zasláno: 13. 7. 2006, 12:06:49
Kajman_ Dekuji moc, uz je to uplne na jednicku!
|
||
|
Časová prodleva: 20 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0