![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 313 Pomógł: 24 Dołączył: 9.08.2008 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Witam
mam w bazie rekordy Łódź Będzin Fläming itd... ogólnie lista miast z całej europy teraz chcę wyszukać w tej bazie za pomocą LIKE %% np. 'odz' - znajdzie Łódź 'fla' - znajdzie Fläming 'Lod' - czemu nie znajduje 'Ł' jeśli w LIKE damy 'L'? tylko z tą literą jest problem kodowanie w tabeli to utf_general_ci, ogólnie wszystko jest ustawione na utf_general_ci czy zna ktoś rozwiązanie mojego problemu? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 28.08.2009 Skąd: wertykalne przez większość dnia Ostrzeżenie: (0%) ![]() ![]() |
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 mieszkańców stosuje w zapytaniu do mysqla :
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)
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ć. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 11:54 |