Autor Zpráva
sql
Profil *
Prosim, asi jednoduchy dotaz
jak provest sertideni zaznamu dle pevne stanoveneho poradi
napr ORDER BY polozky a chci je setridit dle pevne danych kriterii "PH"", "SC", "JM" atd.... proste ne ASC, DESC
dik za radu
Kajman
Profil
Nejlépe sloupcem 'poradi' u tech krajů.

Také by šlo order by
order by field(`kraj`,'JM','SC','PH') desc
sql
Profil *
ORDER BY FIELD ('kraj', 'PH','SC','LB','HK','PB','UT','KV','PZ','JC','VS','MS','OL','ZL','JM'), mesto ASC
Chyba: SQLSTATE[HY000]: General error: 1 no such function: FIELD

kde je chyba, plsss?
Kajman
Profil
Toto řešení je pro mysql. Jakou db používáte?
sql
Profil *
SQLite
Kajman
Profil
Možná půjde
 ORDER BY CASE
            WHEN kraj ='PH' THEN 1
            WHEN kraj ='SC' THEN 2
            WHEN kraj ='JM' THEN 3
            ELSE 4
          END
Ale určitě bude lepší si to pořadí poznačit do nového sloupce v číselníku krajů, případně v pomocné tabulce.
sql
Profil *
aha, trochu krkolomne, takze kdybych vytvoril tabulku kraju "kraje", kde by id bylo poradi v jakem bych je chtel zobrazit, pak
by select resp. podminka vypadala jak, tedy vazany na tu pomocnou tabulku?
Kajman
Profil
Ne k identifikaci (primární klíč) budou sloužit ty kódy 'PM', 'SC'. V dalších sloupečcích můžete mít ten kraj rozepsát a v dalším sloupečku pořadí.

Pak v dotaze pomocí join připojíte na základě těchto kódů informace o kraji a v order by použijete to pořadí.
sql
Profil *
Moc dekuji za radu, tak nakonec jsem pouzil to reseni s CASE, jelikoz okresy uz mam definovane jako konstantni pole, takze jsem si udelal fci ktera podminku CASE vygeneruje..
Ted uz to vraci to co chci a jak chci, jeste jednou diky, jinak bych se s tim trapil cert vi jak dlouho...
sql
Profil *
Jeste se vracim k nasledujicimu dotazu o pevne nadefinovanem setrideni.
Potreboval bych to vylepsi s tim, ze polozka 'kraj' nebude pevne 2mistna, ale muze tam byt PH, PH03, PH10, atd.. tzn. PH*
Prosim jak to lze upravit, dekuji za pomoc


Uz vim: WHEN kraj LIKE 'PH%' THEN 1

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0