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

Sådan returneres rækker, der har de samme kolonneværdier i MySql

Dette er et eksempel på en "sæt-i-sæt"-forespørgsel. Jeg anbefaler aggregering med having klausul, fordi det er den mest fleksible tilgang.

select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
       sum(id = 4) > 0     -- has id = 4

Hvad dette gør er at aggregere efter score. Derefter den første del af having klausul (sum(id = 2) ) tæller op, hvor mange "2" der er pr. score. Den anden er at tælle op, hvor mange "4" s. Kun score, der har "2" og "4" returneres.



  1. INDSÆT ... PÅ DUBLIKAT NØGLOPDATERING med HVOR?

  2. Hvordan får man aktuel dato i PL/SQL?

  3. Registrer og kør PostgreSQL 9.0 som Windows Service

  4. Opdeling af kommaseparerede værdier i kolonner til flere rækker i SQL Server