witam
mam podobny problem.
choć chodzi mi o cos wręcz odwrotnego.
to znaczy mam w bazie dajmy na to 'Łódź'
i chciałbym zeby po zapytaniu do bazy o tresci 'Lodz' nie wyrzucało rekordów z wartością Łódź.
ten przykład jest chyba ciut nietrafiony, zatem inny
mam w bazie kancelarię oraz administrację (obsługa mieszkańców)
przy cząstkowym (tylko czesc nazwy) zapytaniu o te które w nazwie maja
kanc wyrzuca mi jako wyniki
kancelarie
oraz
miesz
kańców
stosuje w zapytaniu do mysqla :
SELECT wartosc='%zapytanie%' FROM tabela
formatownie bazy to jak u kolegi utf_general_ci
Czy ktos mógłby mi zaproponować jak rozwiązać taki problem:
oczywiście jest pewna możliwość - w php juz po pobraniu wyników przefiltrowac dane i pozwolic wyswitlic tylko te które naprawde spełniają zapytanie, rzecz w tym, że takie rozwiązanie ma dwie wady:
- dodatkowy kod, ktory ma poprawiać co wykonał mysql - co samo w sobie jest już bezsensu bo po co robic dwa razy to samo
- baza zwraca wyniki, ktore nastepnie selekcjonuje, po co, obciazam niepotrzebnie baze, serwer, łącze itd itp
W związku z powyższym odpada.
Zatem trzeba szukac w mysqlu.
Drugim moim pomyslem było zastosowanie innego kodowania - pytanie ktorego? w końcu chcę aby polskie znaki tez były używane.
czy zatem istnieje jakies kodowanie które posiada polskie znaki ale nie traktuje ł jak l lub ź jak z - i vice versa.
Rozumiem że Collate może tu dużo zdziałać.
Przyznaję jednak, że nie znam na tyle dobrze mysqla aby sobie ot tak zmieniać bezbłednie kodowania.
1 - rozumiem że COLLATE zamienia kodowanie na czas wykonywania zapytania (tak rozumiem to co napisali w manualu :With the COLLATE clause, you can override whatever the default collation is for a comparison.)? comparison? to przecież porównanie? czy ktoś mógłby mi wytłumaczyć tak po ludzku jak to właściwie działa całe to COLLATE.
2 - dajmy na to jesli wyszukuje przez zapytanie typu (przykład z manuala)
SELECT k COLLATE latin1_german2_ci AS k1
FROM t1
a baze mam w utf_general_ci - to czy nie wywoła to błedów?
3 - jakie kodowanie - utf8_polish_ci?
4- czy ktos zna jakies dobre opracowanie do kodowan z mysqla, prosze o linka?
ps. problem jest juz właściwie teoretyczny bo po uwzględeniu, że uzytkownik może nieumyslnie zrobic błąd w czasie wpisywanie zapytania, nie będę takiej funkcji wprowadzał. (wiadoma sprawa literówki itp)
Pomyślałem jednak, że temat jest ciekawy i byc może komuś takie wyszukiwanie może się przydać.