Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda con FULLTEXT y vistas

Estas en el tema de Duda con FULLTEXT y vistas en el foro de Mysql en Foros del Web. Buenas! Una duda rápida: Tengo varias tablas relacionadas, y me gustaría hacer un match sobre campos de estas tablas... digamos que: Código: PERSONA - nombre ...
  #1 (permalink)  
Antiguo 25/02/2013, 05:01
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Duda con FULLTEXT y vistas

Buenas!

Una duda rápida:

Tengo varias tablas relacionadas, y me gustaría hacer un match sobre campos de estas tablas... digamos que:

Código:
PERSONA

- nombre *
- apellido1 *
- apellido2 *
- id_lugar

LUGAR
- id_lugar
- nombre_lugar *
Los campos marcados con "*" serían los que me interesa buscar.

El tema estaría en hacer todo el match de una vez (es decir "match(nombre, apellido1, apellido2, nombre_lugar)"), pero supongo que con un select "normal" (usando un join) no podría, ¿no?

Entonces he pensado que quizás con una vista podría, pero no se...

¿Alguien me echa un cable?

Gracias
  #2 (permalink)  
Antiguo 25/02/2013, 06:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Duda con FULLTEXT y vistas

Para usar match ... against necesitas un indice FULLTEXT solo puedes definir indices fulltext en TABLAS MyISAM (12.7.3. Limitaciones de las búsquedas de texto completo (Full-Text)) No puedes crear indices en vistas (H.4. Restricciones en vistas)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 25/02/2013, 07:00
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Duda con FULLTEXT y vistas

Hola quimfv,

Lo primero ya lo he tenido en cuenta. La segunda parte es la que me ha aclarado.

De todas maneras, probando he conseguido hacer algo así:

Código SQL:
Ver original
  1. SELECT p.nombre, p.apellido1, p.apellido2, l.nombre_lugar
  2. FROM persona p
  3. INNER JOIN lugar l ON p.id_lugar = l.id_lugar
  4. WHERE MATCH(p.nombre, p.apellido1, p.apellido2) against('') AND
  5. MATCH(l.nombre_lugar) against('');

No se si tendrá el mismo efecto que si tuviera los cuatro en un mismo índice FULLTEXT...

Etiquetas: campos, fulltext, join, select, tabla, vistas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:53.