sql >> Databasteknik >  >> RDS >> Mysql

MYSQL delmängd operation

Från din pseudokod antar jag att du vill kontrollera om en (dynamisk) värdelista är en delmängd av en annan lista som tillhandahålls av en SELECT . Om ja, kommer en hel tabell att visas. Om inte, kommer inga rader att visas.

Så här uppnår du det:

SELECT *
FROM tb_values
WHERE 
    ( SELECT COUNT(DISTINCT value)
      FROM tb_value
      WHERE isgoodvalue = true
        AND value IN (value1, value2, value3)
    ) = 3

UPPDATERAD efter OP:s förklaring:

SELECT *
FROM project
  JOIN 
    ( SELECT projectid
      FROM projectTagMap
      WHERE isgoodvalue = true
        AND tag IN (tag1, tag2, tag3)
      GROUP BY projectid
      HAVING COUNT(*) = 3
    ) AS ok
    ON ok.projectid = project.id


  1. Utdata Excel-fil i PHP efter eko

  2. PHP:Hämta bild från MySQL med PDO

  3. MYSQL-utdata i trädformat ELLER Lägger till nivå (förälder-barn)

  4. MySQL:Trunkate Table vs Delete From Table