Posiadam baze, która w tabeli haslo przechowuje kilkadziesiąt tysięcy słów.
Tabela haslo składa się z trzech kolumn:
id
slowo
dlugosc_slowa
Z wykorzystaniem wyrażeń regularnych chciałbym np. wyszukać losowe czteroliterowe słowo zaczynające się na literę 'l'
robię to za pomocą zapytania:
Kod
SELECT * FROM haslo
WHERE slowo REGEXP '[l]...$' and dlugosc_slowa = 4 ORDER BY RAND( ) LIMIT 1
WHERE slowo REGEXP '[l]...$' and dlugosc_slowa = 4 ORDER BY RAND( ) LIMIT 1
Zapytanie zwraca poprawne rezultaty (np. lada, list) dopóki nie napotka na polskie znaki,
jeśli w sprawdzanym słowie napotka na polski ogonek to potrafi zwrócić np. zlać lub pląs - wyrazy czteroliterowe ale nie zaczynające się na litere 'l'
kodowanie utf8
metoda porównywania napisów to utf8_polish_ci
Jak sobie z tym poradzić?
Z góry dziękuje za pomoc.