sql >> Databasteknik >  >> RDS >> Mysql

Fråga för att hitta inlägg med en exakt uppsättning taggar (många-till-många-relation)

Detta är ett exakt relationsuppdelningsproblem.

I SQL Server en bra presterande metod (förutsatt unik begränsning på post_id,tag ) är

SELECT post_id
FROM   post_tags
GROUP  BY post_id
HAVING MIN(CASE
             WHEN Keyword IN ( 'clever', 'interesting' ) THEN 1
             ELSE 0
           END) = 1
       AND SUM(CASE
                 WHEN Keyword IN ( 'clever', 'interesting' ) THEN 1
                 ELSE 0
               END) = 2  

Så jag skulle inte utesluta idén att använda GROUP_CONCAT i HAVING istället.

HAVING GROUP_CONCAT(DISTINCT Keyword ORDER BY Keyword) = 'clever,interesting'


  1. MySQL #1093 - Du kan inte ange måltabellen "giveaways" för uppdatering i FROM-klausulen

  2. 4 sätt att få SQL Server-jobbhistorik

  3. Det går inte att hoppa till rad 0 på MySQL resultatindex 13

  4. Upptäck sammanställning av en MySQL-kolumn