tag cloud

Requete SQL pour trouver des articles en relations

Trouver des articles similaires grâce à vos tags

not provided, mysql relation sql, javascript et ajax, sql pour les nuls, requetes sql pour les nuls

Cette requête permet de trouver pour un article donné des articles similaires en se basant sur les tags. Elle retourne les articles qui ont 50% des tags qui correspondent dans les deux sens.

Dans l'exemple suivant on traite l'article avec pour ID 100 :


SELECT
ART_ID,
COUNT(*) AS MATCHES,
(
SELECT COUNT( * )
FROM ARTICLES_TAGS
WHERE t1.ART_ID = ART_ID
GROUP BY ART_ID
) AS TAG_COUNT
FROM ARTICLES_TAGS t1
WHERE TAG_ID
IN
(
SELECT TAG_ID
FROM ARTICLES_TAGS
WHERE ART_ID =100
)
AND ART_ID !=100
GROUP BY ART_ID
HAVING
(MATCHES /(SELECT greatest(COUNT(*),1) FROM ARTICLES_TAGS WHERE ART_ID =100 GROUP BY ART_ID ) >= 0.5)
AND MATCHES >=TAG_COUNT/(1/0.5)

Image : 37hz

 
 

b1n@sp1n