2008-12-26 7 views
10

¿Cómo puedo buscar en table_a table_b table_c, que tienen un número aleatorio de columnas para una cadena?MySQL: Cómo buscar en varias tablas una cadena existente en cualquier columna

Sé que esto no es SQL adecuado pero sería algo así como:

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

Ty con antelación para el SO comunidad

+0

Consulte la siguiente: http://winashwin.wordpress.com/2012/08/28/mysql-search/ –

Respuesta

29

Añadir fulltext indexes a todas las columnas de serie en todas las mesas, a continuación, la unión de los resultados

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 muy fresco - estado buscando esta respuesta durante un tiempo ahora. Solo necesita saber cómo ORDENAR los resultados por la cantidad de veces que ocurre la cadena. En mi caso, estoy haciendo una búsqueda booleana en múltiples campos de múltiples tablas. Solo necesito saber cómo obtener los resultados ordenados por relevancia. –

Cuestiones relacionadas