Autor Zpráva
guest
Profil
Zdravím na webu jsem našel následující dotaz a odpověď:

Dotaz: Podmínka LIKE mi ignoruje češtinu! Když zadám "řeka", najde i "reka"!
Odpověď: Nastavte sloupci české řazení. Máte-li nastavené např. cp1250_general_ci a cp1250_czech_cs nechcete, protože rozlišuje velikost písmen, ponechte sloupci řazení a pouze ho změňte v dané podmínce:
WHERE sloupec COLLATE cp1250_czech_cs LIKE 'řeka'


Můj problém je však naprosto opačný, já bych naopak potřeboval aby mi podmínka LIKE našla jak "řeka" tak "reka" i "Řeka". Když se podívám na výše citovanou odpověď, stačilo by nastavit kódování na cp1250_general_ci ? A jak to udělám pro celou tabulku?

díky
Kajman_
Profil *
Podle manuálu to možná jedním příkazem přenastavit půjde...

http://dev.mysql.com/doc/refman/4.1/en/alter-table.html
ALTER [IGNORE] TABLE tbl_name
...
CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]

Ale žádné osobní zkušenosti s tím nemám, tak si důkladně zálohujte.
guest
Profil
děkuji, ozkouším to
guest
Profil
napadlo mě ještě - nešlo by odstranit diakritiku v SQL dotazu při vyhledávání?

Joker mi dnes poradil jak v dotazu převést řetězec na malá písmena:

$hledany = addslashes(strtolower($hledany));
$sql = "SELECT id FROM tabulka WHERE LOWER(retezec) LIKE '$hledany'";

nelze tedy nějak obdobně zároveň vše převést na řetězec bez diakritiky (pouze pro účel vyhledávání)? V PHP vím jak převést řetězec na řetězec bez diakritiky ale v SQL nevím.

Pokud by to šlo, tak by byl probém vyřešen poměrně jednoduše, protože jinak s diakritikou problémy nemám, vše se mi zobrazuje tak jak má - hezky česky :o)
Kajman_
Profil *
Tak si diakritiku převeďte v php a uložte do nového sloupečku. Vyhledávání pak bude rychlejší než to stále převádět.
Diwi
Profil *
Zdravim,
mam mysql 5.0 a kodovani cp1250_general_ci neresi vyhledavani bez diakritiky. Na webu je tato informace zavadejici. Jedine kodovani ktere dokazalo vyhledat jakykoliv text (s diakritikou i bez ni) v DB , kde byla ulozena s diakritikou je utf8_general_ci.

Viz. CONVERT( _cp1250 'ěščř' USING utf8 ) COLLATE utf8_general_ci
Toto téma je uzamčeno. Odpověď nelze zaslat.