Autor | Zpráva | ||
---|---|---|---|
milan.lipka Profil * |
#1 · Zasláno: 20. 8. 2008, 23:32:00
Zdravím,
mám taký malý problém - a to, že mi v mysql nefunguje správne usporiadavanie. Mám nasledovnú tabuľku: [code] CREATE TABLE `kraje` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `lng` VARCHAR(2) NOT NULL DEFAULT '', `nazov` VARCHAR(100) NOT NULL DEFAULT '', `sub` INT(11) NOT NULL DEFAULT 0, PRIMARY KEY(`id`) ); [/code] a chcel by som z nej vyselectovať dáta a usporiadať ich tak, aby keď hodnota v stĺpci sub je 0, tak bude riadky usporiadavať podľa ID, ak nebude 0, tak aby ich usporiadavalo podľa názvu. To by problémom nebolo - zostavil som si nasledovný select: [code] SELECT * FROM kraje ORDER BY IF(sub=0,id,nazov) [/code] lenže tento select usporiadava hodnoty ID nesprávne. Usporiadava ich v poradí: 1, 10, 11, 12, 3, 4, 5 ... 9 namiesto 1, 2, 3, ... 12. Keď dám obyčajný select bez tej podmienky IF, čiže SELECT * FROM kraje ORDER BY id, tak to už usporiadava ID správne. Vedel by mi niekto poradiť, ako vyriešiť tento problém (ak sa to vôbec nejako dá)? Vďaka. |
||
Kajman_ Profil * |
#2 · Zasláno: 20. 8. 2008, 23:55:00
Oba výsledky ifu musí být stejného typu, proto se číslo převete na varchar. Zkuste
lpad(id,10,'0') |
||
milan.lipka Profil * |
#3 · Zasláno: 21. 8. 2008, 10:06:56
jj funguje to ;-) dik
|
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0