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

SQL:Gør farver fra farvetabel søgbare

Du ville bruge betingede sammenlægninger her. For rød og blå for eksempel vil du finde kort hvor

  1. begge farver findes
  2. Der findes ingen anden farve

Det betyder, at hvis jeg tæller rød og blå for et kort, skal jeg få 2. Hvis jeg tæller alle farver, skal jeg også få 2. (Samme for en, tre eller flere farver.)

Så brug denne forespørgsel og skift kun de nævnte farver og antallet af farver:

select *
from cards_data where id in
(
  select cards_id
  from con_cards_colors
  group by cards_id
  having count(case when colors_id in (select id from colors where name in ('Red','Blue')) then 1 end) = 2 -- i.e. find all
  and count(*) = 2 -- i.e. find only those and no others
);


  1. Sortering/bestilling i MySQL

  2. Sådan får du MySQL-status i en forespørgsel

  3. Vis resultater, der er tættest på den aktuelle dato og tid (MySQL &PHP)

  4. mySQL lagret funktion til at skabe en slug