Przepraszam za tytuł tematu, nie bardzo wiem jak nazwać swój problem.
Mam powiedzmy tabele, a w niej
id,tekst
1, Ala ma kota
2, raz dwa trzy
3, alfa beta gama
4, Ula ma kota
5, Ala raz dwa
(Mam jeszcze dwie tabele wordlist i wordmatch na potrzeby wyszukiwarki)
Teraz chce w wyszukiwarkę wpisać "Ala raz", i chce by w wynikach były wiersze które zawierają "Ala Raz" (wiersz 5), i wiersze które są koło siebie i zawierają razem te słowa (wiersze 1 i 2).
W wynikach wiersz 2 i 5 nie może być, ponieważ nie są koło siebie.
Myślałem nad stworzeniem drugiej tabeli wordmatch, wtedy były by w niej sąsiadujące wiersze połączone,,,, były by w niej ID słów:
1, Ala ma kota raz dwa trzy
2, raz dwa trzy alfa beta gama
...itd niby super,
, ale chcę też dodać szukanie np. w trzech sąsiadujących wierszach, czterech,, np. do 5 maks wierszy.,,, takie rozwiązanie nie wydaje mi się optymalne, szkoda miejsca na tabele, które zajmą masę miejsca.
Doszedłem w trakcie pisania tego posta do tego, że pewnie trzeba będzie użyć GROUP_CONCAT(tekst), teraz tylko żeby pogrupowało wiersze by były wyświetlone,,,
1,2
2,3
3,4
4,5
... itd
pasowało by dodać coś w stylu GROUP BY id IN (id,id+1),,, ale czy jest coś tym stylu w MySQL?
----------------
edit
dobra, coś wykombinowałem
SELECT *, (id DIV 2) AS wynik,GROUP_CONCAT(word) AS slowa FROM `wordlist` GROUP BY wynik
łączy wiersze sąsiadujące (po za pierwszym, ale to kwestia poprawienia id DIV 2)
i chyba o to chodziło ,,