Przepraszam z góry że odkopuję archaika, ale mam rozwiązanie, i może się ono przydać WSZYSTKIM
otóż:
SELECT * FROM tabela WHERE pole LIKE '%szukana fraza1%' OR pole LIKE '%szukana fraza2%' ORDER BY (pole LIKE '%szukana fraza1%')+(pole LIKE '%szukana fraza2%') DESC
wyjaśnienie
wyrażenie
pole LIKE '%szukana frazax%'
zwraca wartość 0 (jeśli nie odnaleziono) lub 1 jeśli tekst został znaleziony. Jeśli zsumujemy te prawdy i fałsze to wychodzi nam ilość trafień pojedynczych* i jeśli posortujemy w odwrotnej kolejności to osiągniemy taki efekt o jaki nam chodziło

*chodzi o to, że dla przykładowego zapytania wartość pole='szukana fraza1 szukana fraza2 szukana fraza 1' będzie potraktowane tak samo jak pole='szukana fraza1 szukana fraza2'
życzę miłego korzystania z rozwiązania i piszcie, czy się to wam przydało