Autor | Zpráva | ||
---|---|---|---|
Fury Profil * |
#1 · Zasláno: 11. 9. 2016, 21:35:27
Ahoj,
řeším na webu jeden problém. Mám v databázi následující záznamy: Vyškov Výškov A ve chvíli, kdy provedu dotaz do databáze: SELECT id,nazev FROM `tabulka` WHERE `nazev` LIKE 'Vyškov' Vrátí se mi oba záznamy výše. Dá se nějak docílit toho, aby ve vyhledávání byla zohledněna diakritika? Tzn. při vyhledávání 'Vyškov'se mi vrátil pouze řádek Vyškov, nikoliv Výškov? Kódování mám v utf8_general_ci. Zároveň dodatečný dotaz, dá se zohlednit ve vyhledávání velikost písmen? Děkuji za ponoc. |
||
juriad Profil |
#2 · Zasláno: 11. 9. 2016, 21:44:39
O tom, které znaky jsou shodné rozhoduje collation (utf8_general_ci); pokud chceš přesnou shodu použij
utf8_bin .
|
||
Fury Profil * |
#3 · Zasláno: 11. 9. 2016, 22:10:46
juriad:
Díky, ale jde mi o obě situace, chci abych v jednom dotazu do databáze mohl hledat přesnou shodu, tzn. včetně diakritiky, tak následně v jiném dotazu aby to nezohledňovalo diakritiku. Což když ve chvíli, kdy změním kódování na utf8_bin , tak nejsem schopen docílit obou způsobů.
Jde tohoto nějak docílit? Díky! |
||
juriad Profil |
Můžeš si v dotazu poručit collation: dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_like, ale v takovém případě asi nebude možné použít index a dotaz bude pomalý. Pokud by to byl problém, ulož data do druhého sloupce s jiným collation a používej ty sloupce podle potřeby.
Také: dev.mysql.com/doc/refman/5.7/en/charset-collate.html |
||
Časová prodleva: 7 let
|
0