Witam

Jeżeli w wyszukiwaniu full tekstowym nie użyjemy operatorów (nie wiem jak to nazwać) to możeu szikać po części wyrazu, np:
  1. SELECT *,
  2. MATCH(firmy.nazwa, firmy.opis, kategorie.slowa_kluczowe, firmy.miejscowosc) AGAINST ('budownictwo war' IN BOOLEAN MODE) AS score
  3. FROM firmy LEFT JOIN kategorie ON kategorie.id = firmy.kategoria_id
  4. WHERE MATCH(firmy.nazwa, firmy.opis, kategorie.slowa_kluczowe, firmy.miejscowosc) AGAINST ('budownictwo war' IN BOOLEAN MODE) ORDER BY score DESC


Wyszuka wszystkie firmy z budownictwa oraz miejscowości (tzn wzystkie pola) które maja w nazwie słowo 'war'. No tak, ale chciałbym ograniczyć wyniki do tych które mają oba te człony, więc daje tak:

  1. SELECT *,
  2. MATCH(firmy.nazwa, firmy.opis, kategorie.slowa_kluczowe, firmy.miejscowosc) AGAINST ('+(budownictwo) +(war)' IN BOOLEAN MODE) AS score
  3. FROM firmy LEFT JOIN kategorie ON kategorie.id = firmy.kategoria_id
  4. WHERE MATCH(firmy.nazwa, firmy.opis, kategorie.slowa_kluczowe, firmy.miejscowosc) AGAINST ('+(budownictwo) +(war)' IN BOOLEAN MODE) ORDER BY score DESC


tylko ze wtedy nie znajduje nic, jeżeli zamienię słowo war na warszawa, działa pięknie, znajduje budownictwo z warszawy, czyli to co chcę.
Pytanie. Jak zrobić żeby znajdywało to co chcę ze słowem war (a nie całym: warszawa)

EDIT:
Znalazłem połowiczne rozwiązania: +(war*) znajduje również warszawę, niestety * nie można użyć z przodu wyrazu.