Quando le tue query sfuggono di mano, a volte è meglio scriverne parti in SQL e altre parti nel tuo linguaggio di programmazione preferito.
E potresti anche usare la ricerca fulltext per la ricerca. Puoi creare una tabella separata con tutti i campi che vuoi cercare e aggiungere il FULLTEXT
modificatore.
CREATE TABLE `search_index` (
`id` INT NOT NULL,
`data` TEXT FULLTEXT,
);
SELECT `id` FROM `search_index` WHERE MATCH(`data`) AGAINST('word1 word2 word3');