Autor Zpráva
YoSarin
Profil
Mám menší problém.
Z určitého důvodu potřebuji přidat do tabulky primary key na varchar sloupeček. Ve sloupečku jsou česká slova s diakritikou, tabulka je uložená (dle mého nejlepšího vědomí) v utf-8.
Když se pokouším přidat ten primary key tak mi to vyhodí chybu - že v tabulce existují duplicitní záznamy (což není pravda) a u konkrétního slova, kterého se to týká zobrazuje místo diakritiky nějaké ascii-suši (a to i když jsem pro konzoli nastavil names na cp852 a i obsah tabulky se mi vypisuje správně s diakritikou).
Nevíte někdo čím by to mohlo být?;
Kajman_
Profil *
Zkus nastavit jiné porovnání.
YoSarin
Profil
porovnání mám utf8_czech_ci :-(
Kajman_
Profil *
Tak zkus jiné... a ještě jednou si ověř, které záznamy ti to vrací, že jsou stejné. Asi tam bude jen jiná velikost písmen nebo tak něco... lepší by bylo tedy porovnání končící na cs.
YoSarin
Profil
Kajman_
Všechny záznamy jsou lowercase, teď mě napadlo - nemůže být problém v tom, že v mysql, když porovnávám dva řetězce pomocí =, nebo LIKE, tak na slovo "pracka" najde v db slova "pracka", "pračka", apod. Aby se tomuhle zamezilo, se používá BINARY. Teď jde o to, zda (když se přidává ten unique / primary key na varchar) porovnává ty nové s těmi existujícími podle like/= nebo binary ... like?
Kajman_
Profil *
Myslím, že to porovnává podle nastaveného porovnání, proto bych ho zkusil změnit.
YoSarin
Profil
Tak už jsem to porovnávání změnil (jak pro celou tabulku tak i pro sloupeček) na utf_czech_ci (předtím kupodivu nebylo :-/ ) a výsledek je stále stejný. zkusím ještě to _cs a pak už nevím... možná (pro jistotu) latin2, ale to se bude muset všechno konvertovat...
Kajman_
Profil *
utf8_bin tam není?
Toto téma je uzamčeno. Odpověď nelze zaslat.

0