Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL]Wyszukiwarka, błędy w wpisywaniu
kill15
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 14
Dołączył: 21.12.2010

Ostrzeżenie: (0%)
-----


Witam.
Chciałbym zrobić wyszukiwarkę ale radzącą sobie z błędami w pisowni.
Mój problem polega na tym że nie mam pojęcia jak użyć SOUNDEX z LIKE
Załóżmy że w bazie mam tabele posty która ma kolumne tytul.
Dodamy tam rekord o wartości pola tytul: fajna fajniejsza i najfajniejsza kiełbasa u nas.

Teraz użytkownik wpisuje w wyszukiwarce np kiełbsa i chciałbym żeby mimo to wyszukało mu ten odpowiedni rekord.

Tzn ma wyszukać np post o tytule: fajna fajniejsza i najfajniejsza kiełbasa u nas.
Kiedy w wyszukiwarce wpisze użytkownik np: kiełbsa

Poniższe zapytanie działa jedynie gdy w polu tytul jest tylko: kiełbasa.
  1. SELECT * FROM posty WHERE soundex(tytul) = SOUNDEX("kiełbsa");


Jak zmodyfikować to zapytanie?

Z góry dzięki

Ten post edytował kill15 2.04.2012, 13:51:37
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zordon
post
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Wydaje mi się, że chyba już wiem co chcesz zrobić tylko nie wiem czy Ty na pewno wiesz (IMG:style_emoticons/default/smile.gif)
Przede wszystkim zrób sobie zapytanie w stylu "SELECT soundex(col) FROM `table`" żebyś wiedział CZYM jest soundex

Ja na szybko zrobiłem test : w bazie miałem rekordy:
admin
admni
adminx

W moim zapytaniu gdzie szukam tekstu 'admin' wyszukał mi słowa admin i admni, dlatego że soundex dla tych słów to "A350"
Soundex dla słowa adminx to "A352" więc go nie wypisał, bo i wypisać nie mógł

Podejrzewam, że chcesz zrobić zapytanie szukające soundexa typu "A35%" - tylko pytanie czy na pewno o to Ci chodzi - w tym konkretnym przypadku znajdzie również adminx, ale w innych przypadków pewnie również masę śmieci, które nie powinny być dopasowane.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 08:40