sql >> Database teknologi >  >> RDS >> Mysql

MYSQL undersæt operation

Ud fra din pseudokode gætter jeg på, at du vil kontrollere, om en (dynamisk) liste med værdier er en delmængde af en anden liste leveret af en SELECT . Hvis ja, vil en hel tabel blive vist. Hvis ikke, vil der ikke blive vist nogen rækker.

Sådan opnå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

OPDATERET efter OPs forklaring:

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. Sikkerhedskopiering af database i MySQL ved hjælp af C#

  2. Django MySQL fuldtekstsøgning

  3. Sådan fjerner du førende og/eller efterfølgende mellemrum i en streng i T-SQL

  4. PostgreSQL vs. Linux-kerneversioner