sql >> Databasteknik >  >> RDS >> Mysql

Returnera rader där kolumnen matchar alla värden i en uppsättning

Testa den här frågan

SELECT group_concat(`type`) AS types,user_id 
FROM users 
WHERE `type` IN('B','C') 
group by user_id 
HAVING FIND_IN_SET('B',types)>0 && FIND_IN_SET('C',types)>0 

SQL Fiddle http://sqlfiddle.com/#!2/8ef8e/2



  1. Välj unika rader, enligt värde i en sekundär kolumn

  2. Aggregera data med hjälp av gruppfunktioner (gruppera efter orakel)

  3. Blir de snabbare om du lägger till 'LIMIT 1' i MySQL-frågor när du vet att det bara kommer att bli ett resultat?

  4. Stora teckenfältstorlekar i SAS