SELECT id,tytul,licznik,link FROM `tabela1` WHERE match(tytul) against ('$wy' IN BOOLEAN MODE ) >= $minimalna_zgodnosc GROUP BY link ORDER BY match( tytul ) against ('$wy' IN BOOLEAN MODE) DESC, match( tytul ) against('$wy') DESC LIMIT
Zapytanie to zwraca wyniki, ale czasem zdarza się, że wynik jest nieaktualny, dlatego wprowadziłem do tabeli wiersz `check` który opisuje czy wynik ma być brany pod uwagę przy wyszukiwaniu.
Jeśli `check`=1 to dany wynik ma nie być uwzględniany a gdy `check`=0 wynik ma być uwzględniany.
Zmodyfikowałem odpowiednio zapytanie:
SELECT id,tytul,licznik,link FROM `tabela1` WHERE match(tytul) against ('$wy' IN BOOLEAN MODE ) >= $minimalna_zgodnosc GROUP BY link ORDER BY match( tytul ) against ('$wy' IN BOOLEAN MODE) DESC, match( tytul ) against('$wy') AND `check`=0 DESC LIMIT
Sądziłem, że dostane takie same wyniki jak poprzednio tylko bez uwzględniania tych z check=1, jednak zapytanie zamiast zachować kolejność i rodzaj wyników tak jak robiło to poprzednie, tylko z pominięciem błędnych, wyświetla mi całkiem inne rekordy.
Jeśli np 1 zapytanie wyświetlało mi 5 rekordów w tym ten 5 był zły to teraz nie dostaje tego 5, ale pierwsze 4 to całkiem inne wyniki jak te zwracane w 1 przypadku co jest dla mnie konkretnie bez sensu, bo przecież wykluczam z tego zapytanie tylko to co ma check=1 !
Dlaczego to 2 zapytanie zwraca mi całkiem inne wyniki (inna kolejność) niż to 1 ?