Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment sélectionner des données dans une table de paires clé-valeur

Vous pouvez utiliser l'agrégation conditionnelle pour obtenir toutes les informations d'un parentid sur une ligne, puis utiliser un where clause pour la condition requise.

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

Cela suppose qu'il n'y a qu'une seule ligne par clé par parentid dans la table.