Ответ 1
Добавьте полнотекстовые индексы ко всем столбцам строки во всех этих таблицах, затем соедините результаты
select * from table1 where match(col1, col2, col3) against ('some string')
union all
select * from table2 where match(col1, col2) against ('some string')
union all
select * from table3 where match(col1, col2, col3, col4) against ('some string')
...