MySQL: как искать в нескольких таблицах строку, существующую в любом столбце
Как я могу искать в table_a table_b table_c
, которые имеют случайное количество столбцов для строки?
Я знаю, что это не правильный sql, но это было бы что-то вроде:
SELECT * FROM users, accounts, something_else WHERE ->ANY COLUMN CONTAINS 'this_string'<-
Ты заранее для SO сообщества
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')
...