2008-12-26 3 views
10

Wie kann ich in table_a table_b table_c suchen, die eine zufällige Anzahl von Spalten für eine Zeichenfolge haben?MySQL: Wie mehrere Tabellen für eine Zeichenfolge in einer beliebigen Spalte zu suchen

Ich weiß, das nicht die richtige SQL ist, aber es wäre wie etwas sein:

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

Ty im Voraus für SO Gemeinde

+0

siehe dazu: http://winashwin.wordpress.com/2012/08/28/mysql-search/ –

Antwort

29

hinzufügen fulltext indexes, um alle der String-Spalten in all diesen Tabellen, dann Union die Ergebnisse

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 Sehr cool - für diese Antwort für eine Weile suchen jetzt. Ich muss nur wissen, wie man die Ergebnisse nach der Häufigkeit sortiert, mit der die Zeichenfolge auftritt. In meinem Fall mache ich eine boolesche Suche in mehreren Feldern aus mehreren Tabellen. Ich muss nur wissen, wie man die Ergebnisse nach Relevanz geordnet bekommt. –

Verwandte Themen