Autor | Zpráva | ||
---|---|---|---|
guest Profil |
#1 · Zasláno: 13. 3. 2007, 21:05:19
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 * |
#2 · Zasláno: 13. 3. 2007, 22:19:24
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 |
#3 · Zasláno: 13. 3. 2007, 22:41:48
děkuji, ozkouším to
|
||
guest Profil |
#4 · Zasláno: 13. 3. 2007, 23:07:46
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 * |
#5 · Zasláno: 14. 3. 2007, 21:15:17
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.
|
||
Časová prodleva: 27 dní
|
|||
Diwi Profil * |
#6 · Zasláno: 11. 4. 2007, 09:11:24
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 |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0