sql >> Databáze >  >> RDS >> Mysql

Vztah SQL one-to-many - Jak VYBRAT řádky v závislosti na více vlastnostech k mnoha?

Jedna metoda používá agregaci a having :

select s.user_id
from settings s
where (key, value) in (  ('color', 'blue'), ('size', '5') )
group by s.user_id
having count(*) = 2;

To předpokládá, že neexistují žádná duplicitní nastavení (pokud ano, budete muset použít count(distinct) ).




  1. Použití transakčního rozsahu a dotazování

  2. Načtení indexu vloženého řádku

  3. myisam umístit zámek stolu na stůl, i když se zabýváte dotazem „vybrat“?

  4. Je MySQL odolnější vůči útoku SQL injection než PostgreSQL (v Perl/DBI)?