ugrás a tartalomhoz

többszörös rendezés SQL-ben

Cadeyrn · 2005. Jan. 20. (Cs), 10.38
Ü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
 
1

elméletile ennek müködni k

tiku I tikaszvince · 2005. Jan. 20. (Cs), 10.47
elméletile ennek müködni kellene
ORDER BY vezeteknev, evszam
2

köszönöm

Cadeyrn · 2005. Jan. 20. (Cs), 22.40
köszönöm szépen, tökéletesen működik!
3

És visszafele?

Fedor · 2005. Okt. 1. (Szo), 15.33
Hali!

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
4

ASC

tiku I tikaszvince · 2005. Okt. 1. (Szo), 16.24
Ha az ORDER BY datume DESC az ellenkező sorrendet okozza, mint amit tet szeretnél, akkor próbáld ki azt hogy ORDER 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
6

ev DESC, honap DESC, nap DESC

Fedor · 2005. Okt. 1. (Szo), 16.48
Ez volt a nyerő, köszi.

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
5

SQL függvény

Jano · 2005. Okt. 1. (Szo), 16.31
Az adatbázis kezelőkben erre mindig van beépített függvény! NEm kell külön felvenni újra ugyanolyan információ tárolására mezőket, hiszen a redundanciát nem szeretjük! Valami ilyesmi: WHERE MONTH(date) = 7

Nézz utána az adatbázis kezelőd doksijában.
Ha éppen MySQL: MySQL Date and Time Functions