Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So wählen Sie Daten aus einer Schlüssel-Wert-Paar-Tabelle aus

Sie können die bedingte Aggregation verwenden, um alle Informationen für eine übergeordnete ID in einer Zeile zu erhalten, und dann ein where verwenden Klausel für die erforderliche Bedingung.

select * from (
select parentid
,max(case when key='name' then value end) as name
,max(case when key='age' then value end) as age
,max(case when key='place' then value end) as place
from tableA
group by parentid 
) t
where place='place1' and age=20

Dies setzt voraus, dass es in der Tabelle nur eine Zeile pro Schlüssel und parentid gibt.