többszörös rendezés SQL-ben
Üdv Mindenkinek!
Keresgéltem egy keveset, de nem nagyon találtam választ a következő kérdésemre: van-e lehetőség MySQL-ben többszörös ORDER by rendezésre?
Konkrétan kellene egyszer vezetéknév és évszám szerint rendeznem, amit eddig nem sikerült szépen megoldanom.
A válaszokat előre is köszönöm,
Cadeyrn
■ Keresgéltem egy keveset, de nem nagyon találtam választ a következő kérdésemre: van-e lehetőség MySQL-ben többszörös ORDER by rendezésre?
Konkrétan kellene egyszer vezetéknév és évszám szerint rendeznem, amit eddig nem sikerült szépen megoldanom.
A válaszokat előre is köszönöm,
Cadeyrn
elméletile ennek müködni k
ORDER BY vezeteknev, evszam
köszönöm
És visszafele?
Van egy híroldalam, ahol természetes kívánalom, hogy a legfrissebb hír kerüljön felülre. Ésszerűnek tűnt dátum szerint rendezni (order by datum desc, ahol a datum oszlop típusa date). Igen ám, de kénytelen voltam felvenni még három oszlopot (ev, honap, nap), hogy a hónap részt külön is tudjam kezelni, mert jobban szeretem azt látni, hogy 2005. október 1. mint azt, hogy 2005-10-01. Kipróbáltam a fentebb említett rendezést is erre a három oszlopra, hátha ezzel ki tudom váltani a datum oszlop funkcióját, de ez csak sima sorbarendezéskor működött (order by ev,honap,nap), tehát amikor a legrégebbi került felülre, amikor fordított sorrendet akartam (order by ev,honap,nap desc;) azt csak az utolsó tagra, a napra értelmezte, így viszont zagyva lett a sorrend. A megrendelő kívánsága az volt, hogy szükség esetén ő adhassa meg a dátumot (esetlegesen utólagos módosítással), így az se megoldás, ha nem a datumra, hanem az id-ra rendezem. Végül is ezzel a plusz egy datum oszloppal működik a dolog, de érzem, volna elegánsabb megoldás...
A kérdésem lényege tehát, működik-e valamilyen módon a többszörös ORDER by rendezés fordított sorrendben?
Üdv,
Fedor
ASC
ORDER BY datume DESC
az ellenkező sorrendet okozza, mint amit tet szeretnél, akkor próbáld ki azt hogyORDER BY datum ASC
.Többszörös rendezésnél pedig használhatsz minden oszlopra a rendezés irányát meghatározó módosítót.
ORDER BY ev DESC, honap DESC, nap DESC
, fogja a számodra megfelelő sorrendet előállítani.De ha DATE típusú a datum meződ, akkor próbáld ki szűrőfeltételnek, hogy
WHERE datum BETWEEN 20050930 AND 20051031
, plusz-minusz 1 nap a két dátumban. Ha DATETIME formátumú, akkor 20051001000000 formátumban próbálkozz...TikuVoltam
Ma is holnap fekszünk le, mint tegnap
ev DESC, honap DESC, nap DESC
Az ORDER BY datum DESC működik, csak ezt a plusz egy oszlopot szerettem volna eltüntetni, és ez sikerült is.
Üdv,
Fedor
SQL függvény
Nézz utána az adatbázis kezelőd doksijában.
Ha éppen MySQL: MySQL Date and Time Functions