Autor Zpráva
Anonymní
Profil *
Zdravím, narazil jsem na problém s mým vyhledáváním v databázi.

tento dotaz nenalezne nic

SELECT titulek FROM clanky WHERE perex RLIKE '[l|L][u|ů|ú|ú|U|Ů|Ú|Ú][h|H][a|á|á|A|Á|Á][c|č|C|Č][o|ó|ó|O|Ó|Ó][v|V][i|í|í|I|Í|Í][c|č|C|Č][e|é|é|ě|E|É|É|Ě]'


a tento mi správně vyhodí všechny záznamy kde se vyskytuje slovo Luhačovice

SELECT titulek FROM clanky WHERE perex RLIKE '[l|L][u|ů|ú|ú|U|Ů|Ú|Ú][h|H][a|á|á|A|Á|Á]č[o|ó|ó|O|Ó|Ó][v|V][i|í|í|I|Í|Í][c|č|C|Č][e|é|é|ě|E|É|É|Ě]'


Přitom scripty i db mám v UTF 8 :(
Kajman_
Profil *
Možná to bude tím varováním v manuálu, že to s utf-8 není bez problémů, viz.

http://dev.mysql.com/doc/refman/4.1/en/string-comparison-functions.htm l#operator_regexp

Co si odstranit diakritiku a zmenšit všechna písmenka a uložit si perex2. Vyhledávání by pak mělo být i rychlější.
Anonymní
Profil *
Možná to bude tím varováním v manuálu, že to s utf-8 není bez problémů, viz.

http://dev.mysql.com/doc/refman/4.1/en/string-comparison-functions.htm l#operator_regexp

Co si odstranit diakritiku a zmenšit všechna písmenka a uložit si perex2. Vyhledávání by pak mělo být i rychlější.


To s tím perexem byl jen názorný příklad
Anonymní
Profil *
Takže jedině předělat kódováni DB na něco jiného
ViX612
Profil *
neměla by konfliktní (zejména multibyte) písmena být v regulárním výrazu v kulatých závorkách (c|č|C|Č)? Je tady asi nejpravděpodobnější, že v regulárním výrazu je [c|č|C|Č] interpretováno č jako dvojice znaků, která se v regulárním výrazu pronese a způsobí problémy při procházení řetězců.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0