sql >> Databasteknik >  >> RDS >> Mysql

Hur hämtar man unika rader baserat på kolumnvärdekombinationer?

EDIT:Svaret har ändrats för uppdaterad fråga

OBS:fråga inte testad

SELECT GROUP_CONCAT(lot ORDER BY lot ASC SEPARATOR ',') 
from mytable 
having count(*) = 2 
  and GROUP_CONCAT(tag ORDER BY tag ASC SEPARATOR ' ') = '101 102' 
group by product

gammalt svar

du kan använda group by för att uppnå detta.

select tag, product from mytable where tag in (101,102) group by tag, product 

detta kan också vara möjligt med distinkt, men du måste ta en titt på det. Jag kommer inte ihåg om distinkt är möjligt i flera kolumner. Jag tror att det här kommer att fungera också...

select distinct tag, product from mytable where tag in (101,102)


  1. OR stöds inte med CASE Statement i SQL Server

  2. Hur använder man en paketkonstant i SQL SELECT-satsen?

  3. Hur man ändrar datatyp i Oracle med befintliga rader i tabellen

  4. Vad är databastestning och hur gör man det?