2008-12-26 8 views
10

Comment puis-je rechercher dans table_a table_b table_c, qui ont un nombre aléatoire de colonnes pour une chaîne?MySQL: Comment rechercher plusieurs tables pour une chaîne existante dans une colonne

Je sais que ce n'est pas bon sql mais ce serait quelque chose comme:

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

Ty à l'avance pour SO communauté

+0

Envoyer cette: http://winashwin.wordpress.com/2012/08/28/mysql-search/ –

Répondre

29

Ajouter fulltext indexes à toutes les colonnes de chaîne dans toutes les tables, puis union les résultats

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

@kiu Très cool - cherche sa cette réponse pendant un certain temps à présent. Juste besoin de savoir comment ORDER les résultats par le nombre de fois que la chaîne se produit. Dans mon cas, je fais une recherche booléenne dans plusieurs champs à partir de plusieurs tables. Juste besoin de savoir comment obtenir les résultats classés par pertinence. –

Questions connexes