Estoy tratando de averiguar cómo pedir elementos con etiquetas que coincidan con el número de etiquetas que coinciden.Ordenar elementos con etiquetas que coincidan por número de etiquetas que coinciden con
Digamos que usted tiene tres tablas de MySQL:
tags(tag_id, title)
articles(article_id, some_text)
articles_tags(tag_id, article_id)
Ahora digamos que usted tiene cuatro artículos donde:
article_id = 1
tiene etiquetas " humor, "" f unny, "y" hilarante ".
article_id = 2
tiene las etiquetas "gracioso", "tonto" y "ridículo".
article_id = 3
tiene las etiquetas "gracioso", "tonto" y "ridículo".
article_id = 4
tiene la etiqueta "completely serious."
Necesita encontrar todos los artículos relacionados con article_id = 2
por al menos una etiqueta que coincida, y devolver los resultados en el orden de las mejores coincidencias. En otras palabras, article_id = 3
debe ser lo primero, con article_id = 1
en segundo lugar, y article_id = 4
no debe aparecer en absoluto.
¿Es esto algo que se puede hacer en consultas SQL o solo, o es más adecuado para algo como Sphinx? En el primer caso, ¿qué tipo de consulta se debe hacer y qué tipo de índices se deben crear para obtener los mejores resultados? Si es este último, por favor expande.
La segunda sintaxis es fantástica y funcionó exactamente de la manera que necesitaba. ¡Muchas gracias! –