MySQL: как искать в нескольких таблицах строку, существующую в любом столбце - PullRequest
10 голосов
/ 26 декабря 2008

Как мне искать в table_a table_b table_c, в котором есть случайное количество столбцов для строки?

Я знаю, что это не правильный sql, но это было бы что-то вроде:

SELECT * FROM users, accounts, something_else WHERE ->ANY COLUMN CONTAINS 'this_string'<-

Ты заранее для SO сообщества

1 Ответ

29 голосов
/ 26 декабря 2008

Добавьте полнотекстовые индексы ко всем строковым столбцам во всех этих таблицах, затем объедините результаты

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')
...
...