Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwanie danych bez względu na kolejność słów
Forum PHP.pl > Forum > Bazy danych > MySQL
truposzwwl
Witam potrzebuje pomocy robię stronę sklepu z płytami i formularz do ich wyszukiwania ale np. gdy wpisze "ADAMS BRIAN" to wszystko jest dobrze ale gdy wpisze się "BRIAN ADAMS" to już nic nie znajdzie co jest oczywiste i szukam sposobu aby można było to jakoś ominąć i potrzebuje waszej pomocy. Na razie mam takie zapytanie:
  1. SELECT * FROM `md_plytoteka` WHERE `tytul` LIKE '".$wyrazenie."%' OR `wykonawca` LIKE '%".$wyrazenie."%' AND `status` = 1"

Pozdrawiam Wójcik Krystian "Truposz[WWL]"
mccd
Identyczny problem: http://stackoverflow.com/questions/1808659...-order-in-mysql

truposzwwl
Witam
Właśnie nie za bardzo to samo bo zadziała tylko jak wyrażenie będzie miało 2 słowa ale np 3 już nie znajdzie
Pozdrawiam Truposz[WWL]
thek
Indeks pełnotekstowy i match against?
truposzwwl
Możesz mnie jakoś dokładniej pokierować ponieważ nie bardzo rozumiem.
Pozdrawiam Truposz[WWL]
thek
Słowa kluczowe: Fulltext search, match against. Możesz co prawda kombinować także z silnikami pokroju Lucene czy Sphinx, ale nie sądzę by na początek to dla Ciebie było osiągalne i sensowne.
wiiir
  1. SELECT * FROM md_plytoteka WHERE wykonawca REGEXP 'BRIAN|ADAMS';

A tak nie można? Moze tylko mało wydajne rozwiazanie.
thek
Regexp to rozwiązanie bardzo mało wydajne. Nie korzysta z żadnych indeksów i dość ostro leci po bazie. To coś jak odpowiednik: LIKE '%slowo%', więc bardzo szybko możesz ją zajechać jeśli nie zaczniesz optymalizacji.
truposzwwl
Witam
Dzięki wielkie Ragexp działa tak jak tego chciałem. Dzięki wielkie.
Pozdrawiam TruposzWWL
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.