Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie
Forum PHP.pl > Forum > Bazy danych > MySQL
Van Pytel
Witam.

Mam taki problem.

Otoz mam tabele:

kolumna1 - TEXT
kolumna2 - TEXT

W indexach mam:
szukanie FULLTEXT kolumna1 kolumna2

Korzystam z takiego polecenia:
SELECT * FROM `tabela` WHERE MATCH (kolumna1,kolumna2) AGAINST ('tekst')

i wskazuje mi na 0 wynikow mimo ze jest taki tekst w kolumnach/

Tez chcialem zmienic polecenie na LIKE %...% <-- ale ono tez nic nie znajduje.

Tez mam taki przypadek, ze jesli tekst jest z duzych liter i w pisze:
SELECT * FROM `tabela` WHERE kolumna LIKE '%TEKST%'
znajdzie ale jak wpisze z malej litery tekst to nie


Mnie wydaje sie ze jest problem w rozroznianiem liter tylko nie wiem gdzie tego szukac lub naprawic sad.gif

Kodowanie kolumn mam na latin2_bin
A metoda porównywania napisów na latin2_bin

Wiec gdzie jest blad?

Dzieki za odpowiedz smile.gif
sniver
a próbowałeś dopisać w zapytaniu tym z match regółki: IN BOOLEAN MODE
?
Van Pytel
To nic nie daje sad.gif
BaN
Cytat(Van Pytel @ 20.10.2010, 16:49:44 ) *
Mnie wydaje sie ze jest problem w rozroznianiem liter tylko nie wiem gdzie tego szukac lub naprawic sad.gif

Kodowanie kolumn mam na latin2_bin
A metoda porównywania napisów na latin2_bin


Prawdopodobnie dobrze Ci się wydaje. Dla wyszukiwania pełnotekstowego możesz zmienić sposób porównywania bezpośrednio w bazie na latin2_general_ci. Ewentualnie problem może być gdy wyszukujesz przy wyszukiwaniu pełnotekstowym słowa nieindeksowane albo słowa krótsze niż 4 znaki, które nie są standardowo indeksowane. Wtedy należałoby zmienić konfigurację MySQLa
Dla wyszukiwania za pomocą LIKE zobacz Case Sensitivity in String Searches
Van Pytel
Ok zmiana kodowanie w bazie na latin2_general_ci pomogla. Wielkie dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.