Это должно быть то, что вы хотите:
SELECT
*
FROM
table
WHERE
(MATCH (aindex,bindex) AGAINST ('+apple +(pie juice)' IN BOOLEAN MODE))
ETA: Пропущены груши, которые я прочитал в первый раз.Чтобы получить все те, которые вы перечислили, я думаю это должно сработать:
SELECT
*
FROM
table
WHERE
(MATCH (aindex,bindex) AGAINST ('+((apple +(pie juice macintosh turnover strudel)) (pear +(pie juice macintosh turnover strudel)))' IN BOOLEAN MODE));
Это должно означать "должен содержать яблоко и один из пирога, сока, макинтоша, оборота или штруделя ИЛИгруша и пирог, сок, макинтош, товарооборот или штрудель.
Если это не сработает, я бы сделал это:
SELECT
*
FROM
table
WHERE
(MATCH (aindex,bindex) AGAINST ('+apple +(pie juice macintosh turnover strudel)' IN BOOLEAN MODE))
UNION
SELECT
*
FROM
table
WHERE
(MATCH (aindex,bindex) AGAINST ('+pear +(pie juice macintosh turnover strudel)' IN BOOLEAN MODE));