Autor Zpráva
Ikarus
Profil
Ahoj, nevíte někdo, jak donutit mysql, aby řadila správně podle české abecedy (znaky s diakritikou a nejlépe i ch). Díky
llook
Profil
Třeba takhle, že řádku českého textu nastavíš znakovou sadu a jazyk. Třeba takhle pro iso-8859-2:

CREATE TABLE tabulka (
radek VARCHAR(255) CHARACTER SET latin2 COLLATION latin2_czech_ci
);

Takhle pro windows-1250:

CREATE TABLE tabulka (
radek VARCHAR(255) CHARACTER SET cp1250 COLLATION cp1250_czech_ci
);

Pak by to snad mělo řadit podle české abecedy. Nikdy jsem to nezkoušel a ani nevím, od které verze to MySQL umí, takže to bude chtít experimentovat.

Pokud se nechce listovat manuálem k MySQL (v kapitole 11), pak bych doporučil v konzolovém klientovi si pohrát s těmito dotazy:

SHOW CHARACTER SET;
SHOW COLLATION LIKE 'latin2%';
SHOW COLLATION LIKE 'cp1250%';
curo
Profil
Improved support for character set handling was added to MySQL in Version 4.1 :-( http://dev.mysql.com/doc/mysql/en/Charset.html

mám ten istý problém, ale na ver. 4.0.16
Michal_Stanko
Profil *
Radenie podľa cp1250 (Windows Central European) je možné od verzie 4.1, ktorá už je dostupná ako stable release. Môžete si nastaviť radenie na celú DB takto:

ALTER DATABASE nazov_vasej_databazy CHARACTER SET cp1250 COLLATE cp1250_czech_ci

Bohužiaľ to však vyzerá že s radením cp1250_czech_ci (ktoré by malo správne dávať CH za H) je tam ešte nejaký problém (presnejšie bug). Takže zatiaľ jedine bez CH, ale aspoň už Š, Č a podobne nekončia na konci vrátených záznamov :-)

Pozri tiež dokuemntáciu:

http://dev.mysql.com/doc/mysql/en/Charset-ce-sets.html
http://dev.mysql.com/doc/mysql/en/Charset-database.html

...a aj ďalšie kapitoly.
Ikarus
Profil
Přišel už někdo na nějaký způsob jak donutit řadit podle češtiny mysql 4.0.x??

Já našel jen tohle:
http://zahradil.info/?q=ceske-razeni-v-mysql&category=ruzne

ale to řeší problém opravdu jen částečně...
Lemur
Profil *
Jsou tři možnosti:

1) Upgrady MySQL, nebo třeba používat ISO 8859-2 místo Windows1250.
2) Pokud je položek málo, třídit to až v PHP (buďto pomocí colate(), nebo, pokud není locale, tak si to napsat sám).
3) Pokud je položek moc, ale málokdy se mění, udržovat pořadí bokem (jako obyč. číslo) a při přidávání a odebírání ho vždy znovu vytvořit (jde to i pomocí sql). Výpis je velmi rychlý (třídit čísla je mnohem snažší než řetězce), ale úpravy relativně pomalé, takže se hodí třeba pro seznami jměn, které se mění jen zřídka. Vytváření pořadí viz bod 2.

Ohledně CH - CH je hnusnost, plně funkční je použití vlastních třídících rutin, kde se dočasně nahrazuje nějakým v češtině nepoužívanými znaky (já používám #, |, ^ ...) a při výpisu ho nahrazovat zpět.
Yoz
Profil *
MySQL 4.1 donutite pracovat s win1250 prikazom:
SET character_set_results=cp1250, character_set_connection=cp1250, character_set_client=cp1250
PetanekDedynek
Profil *
Já mám ten samý problém : všechno se mi řadí dobře až na š a ž, mají totiž podobnou prioritu jako jiná písmena..... ale našel jsem odkaz, kde to je popsano a jsou tam i nějaké soubory jako patche, avšak nevim jestli to bude chodit v MySQL 4.1......, mrkněte na to apokud něco vyřešíte tak mi lidičky dejte prisim vědět dix

http://www.fi.muni.cz/~adelton/l10n/ - tak to je on :-)
Jasper
Profil *
A nevite jestli to jde nejak nastavit pres PhpMyAdmin??
Toto téma je uzamčeno. Odpověď nelze zaslat.