![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 336 Pomógł: 0 Dołączył: 25.10.2006 Ostrzeżenie: (10%) ![]() ![]() |
Witam Mam problem z szukaniem. Kiedy wpiszę jedno słowo do wyszukiwania jest ok, ale już przy dwóch nie zwraca żadnych rekordów. Proszę was o pomoc jak zmienić zapytanie, aby szukało po dwóch frazach. Proszę o pomoc. Pozdrawiam
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim musisz poczytać o tym jak się robi "wyszukiwarkę". Ogólnie do małych serwisów jeszcze LIKE przejdzie - przy większej ilości danych radzę zapoznać się z wyszukiwaniem pełnotekstowym (przynajmniej indeksy fulltext i match against na początek). W pokazanym przez Ciebie przykładzie szukasz po całej szukanej frazie co może być słuszne albo i nie w zależności od założenia.
Opcje są ogólnie 3: 1. Pełna fraza Ktoś wpisze "Warszawa Kraków" - zostaną zwrócone te wpisy, które mają dokładnie taki zapis 2. Wszystkie słowa z frazy naraz ale traktowane oddzielnie: Musisz podzielić frazę na wyrazy (po spacji - np. funckja explode), usunąc spację z końca i początku każdego słowa i utworzyć zapytanie typu:
3. Przynajmniej jedno ze słów z frazy Tak jak wyżej tylko zamiast AND dajesz OR:
Ogólnie to wszystko. W przypadku jednak gdy szukasz po kilku polach musisz taką operację wykonać dla każdego - czyli dynamicznie tworzyć zapytanka. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 13:59 |