Você pode fazer exatamente o que deseja combinando
IN BOOLEAN MODE
e usando o *
operador. Por exemplo:
... MATCH(thing) AGAINST ('+educat*' IN BOOLEAN MODE)...
O
+
diz à correspondência para incluir apenas os valores de thing
que contêm o termo de correspondência, que neste caso são todos os valores indexados começando com "educat
" (veja aqui
para saber como o modo booleano funciona em detalhes). Como um aparte, a pesquisa de texto completo no MySQL não indexa palavras de 3 ou menos caracteres por padrão, então suspeito que sua correspondência com "edu" não esteja funcionando da maneira que você pensa. Veja o valor do seu
ft_min_word_len
variável para ver se esse é o caso.