RJWEBDESIGN - tvorba webových prezentací

Novinky

22.04.2008
Portál Španělský fotbal byl spuštěn, zatím probíhá testování více

06.03.2008
Pracuji na fotbalovém portálu zabývající se španělským fotbalem

12.01.2008
Dokončen fotbalový rezervační systém Profi Football více

08.01.2008
Spuštění modulu Eshopu pro firmu AZ-SportCzech více

04.01.2008
Dokončena prezentace firmy STRAIGHT CONSULT více


Reklama

Španělský fotbal - spanelskyfotbal.cz

Cizí krmivo


Něco málo o mé osobě

Je mi 26 let, bydlím v hlavním městě ČR. Webdesignem a programováním se zabývám již několik let ... více


Snažím se poradit


Sport, sleduji, hraji


Hlavní Logo

Poslední komentáře

  • nechapem -

    nechapem

  • RJ -

    [131]

    Jak zkopirovat? Vse podstatne mate v clanku, deklaraci funkce a jeji pouziti. Nic vic v tom neni

  • Karel Kaleta -

    Dobrý den, potřeboval bych se zeptat, jestli by jste mi nemohl zkopírovat soubor uložený na vaší adrese http://www.rjwebdesign.net/…ss/index.php a poíslat mejlem. Nevím jak rozjet vaši RSS čtečku a s tímhle to mám jednodušší. Díky za odpověď.

  • RJ -

    [129] To bych nedelal, kdyby zmenili treba razeni men a napr. EURO by se z radku 5 presunulo na radek 8 tak by ti to nevyslo .. zkus to pres to pole, bude to univerzalnejsi

  • kuba -

    [128]jo dík, už jsem to vyřešil, sice ne přes pole, ale trošku kostrbatě přes číslo řádku měny

Statistika

  • Článků celkem: 12
  • Komentářů celkem: 27

Blogspot » MYSQL » Speciální řazení dat v databázi MySQL

Speciální řazení dat v databázi MySQL

Sobota, 21 .Července 2007, 12:26, prečteno 569x

Pokud potřebujeme seřadit data z databáze, můžeme použit klasický způsob ORDER BY a směr. Leckdy si s tímto způsobem ale nevystačíme ...

Máme například tabulku státy (staty). Tabulka obsahuje tyto státy - Anglie, Belgie, Dánsko, Francie, Portugalsko) Základní dotaz , který vypíše zeme vzestupně vypadá takto:

SELECT * FROM staty ORDER stat BY ASC

Výstup bude bude Anglie, Belgie, Dánsko, Francie, Portugalsko

Pokud potřebujeme státy obrácene použijeme dotaz:

SELECT * FROM staty ORDER BY stat DESC

Výstup bude obrácený. Portugalsko, Francie ...

Na tom není nic neobvyklého, je to základní SQL příkaz k řazení.
Co kdybychom potřebovali upřednostnit nějakou zemi a zařadit ji do výpisu na první místo?

Je to snadné. Dotaz bude vypadat takto:

SELECT * FROM staty ORDER BY (stat='Dánsko') DESC, stat ASC

Na první místo se zařadí Dánsko a poté již zeme v abecedním pořadí (Anglie, Belgie ...)

Pokud bychom chtěli mít Dánsko jako posledí použijeme příkaz

SELECT * FROM staty ORDER BY (stat='Dánsko') ASC, stat ASC

Pokud bychom chtěli státy seřadit podle toho kde leží čili

Severní Evropa =>Dánsko Západní Evropa =>Anglie, Belgie, Francie Jižní Evropa => Portugalsko

Použijeme klauzuli ORDER BY FIELD

SELECT * FROM staty ORDER BY FIELD (stat, 'Dánsko', 'Anglie', 'Belgie', 'Francie', 'Portugalsko')

A země se nám seřadí v pořadí v jakém jsme je uvedli v klauzuli FIELD.

Poslední fintou, kterou Vám dnes ukáži je s pomocí podminek přímo v SQL.
Chceme na první místě Francii, Portugalsko, na dalších ostatní země podle abecedy.

SELECT *,
CASE stat
WHEN 'Francie' THEN 1
WHEN 'Portugalsko' THEN 1
ELSE 2
END AS seradPodleMe
FROM
staty
ORDER BY seradPodleMe ASC, stat ASC

Využijeme větvení CASE (známe z PHP) a přiřadíme dvoum státům číslo 1 a všem ostatním číslo 2 a seřadíme podle tohoto speciálního sloupce, a aby se ostatní státy seřadily sestupně, přidáme do ORDER BY ješte podmínku podle jmena státu (stat ASC)

To je pro dnešek a po dlouhé době a pro delší dobu opět vše :-))

Hodnocení: Počet hlasů: 7

Komentáře

Žádný komentář

Přidat komentář

Nový vzkaz

© 2005 - 2008 RJWEBDESIGN, všechna práva vyhrazena.
Nabízíme: Tvorba www stránek
Kontakt: telefony +420 777 856 657 | E-mail: admin@rjwebdesign.net
Spolupracujeme: Aria Studio, MXART Partnerské weby: Pesonline.cz, EuroFotbal.cz, SpanelskyFotbal.cz

© 2008 RJWEBDESIGN