Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2007, 07:40
Avatar de qwerty_wq
qwerty_wq
 
Fecha de Ingreso: enero-2005
Mensajes: 109
Antigüedad: 19 años, 3 meses
Puntos: 1
Ordenar por coincidencia (¿chorrada?)

Buenas. Vamos a ver si podéis ayudarme. Resulta que tengo una tabla que relaciona productos y palabras clave asociadas, de este estilo:

Código:
product_id    keyword_id
----------    ----------
1               1
1               2
1               3
2               5
2               6
2               7
2               3
3               8
3               6
Luego hay otras dos tablas más que relacionan product_id con la información del producto y keyword_id con las keywords o palabras clave. Hasta aquí creo que se entiende.

Pues bien, lo que quiero lograr es una consulta MySQL que ordene de mayor a menor coincidencia con una serie de palabras clave dadas los productos. Es decir, que si busco un producto que tenga las keywords 1, 2 y 3, primero saque el producto que las tenga todas, luego los que tengan dos y luego los que tengan una.

Sé que se debería de poder hacer de forma simple, pero ayer me pasé unas dos horas con phpMyAdmin haciendo pruebas, con papel y lápiz delante y ni haciendo una consulta con "OR" directos, ni con JOINS ni con subconsultas, no he dado con la forma de ordenar los resultados por número de coincidencias con las palabras clave.

Creo que tendría que ser una tontería, pero no acabo de dar con ello. Si alguien puede ayudarme, le estaré muy agradecido

Muchas gracias por adelantado.

Saludos!!