Jak szukać dwóch lub więcej zestawionych słów w bazie

How to search two or three words in SQL

Przykład PHP2013-12-08 stopień trudności: łatwy

Prosty przykÅ‚ad wyszukiwania w bazach dwóch lub wiÄ™cej zestawionych wyrazów.
W czym rzecz, otóż można rozbić ciÄ…g z przykÅ‚adu poniżej na spacjach, ale wynik wyrzuci nam wszystkie wpisy zawierajÄ…ce sÅ‚owo "kolor" lub "czerwony" itd... Poniższy przykÅ‚ad pozwoli natomiast znaleźć wyÅ‚Ä…cznie rekord zawierajÄ…cy zestaw dwóch lub trzech sÅ‚ów wystÄ™pujÄ…cych w zapytaniu przy sobie co zawęża wyniki. Można go zastosować gdy liczba sÅ‚ów w zapytaniu jest wiÄ™ksza niż jedno lub w wyszukiwaniu zaawansowanym.


Nie zawsze to się sprawdzi, ale uznałem że jest warte pokazania jako przykład.


<?
$text 
"test kolor czerwony string php";

echo
"PrzykÅ‚ad pierwszy dwa wyrazy:";
echo
"<br />";

//wyciÄ…gamy wszystkie zestawienia dwóch wyrazów
preg_match_all('/(?=(\w+\s+\w+))\w+/'$text$matches);

for(
$i=0$i <= count($matches[1]); $i++){
echo 
$matches[1][$i]."<br />";
}

echo
"PrzykÅ‚ad drugi trzy wyrazy:";
echo
"<br />";

//warto zwrócić uwagÄ™ na patern poszerzony o \s+\w+ co daÅ‚o nam trzy wyrazy

preg_match_all('/(?=(\w+\s+\w+\s+\w+))\w+/'$text$matches);

for(
$i=0$i <= count($matches[1]); $i++){
echo 
$matches[1][$i]."<br />";
$string $matches[1][$i];
$plus_sql .= " OR pole LIKE '%$string%' ";
}

//wygenerowany poniżej kod dodajemy w zapytaniu sql
echo"$plus_sql";
?>


 







 
close
Strona korzysta z plików cookies. Zastosowane pliki cookie służą jedynie do prowadzenia ogólnych statystyk pozwalających na określenie popularności serwisu.