Autor Zpráva
milan.lipka
Profil *
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 *
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 *
jj funguje to ;-) dik
Toto téma je uzamčeno. Odpověď nelze zaslat.

0