Remodelage des données MySQL : expansion des colonnes
Lorsque les données d'un tableau doivent être remodelées, l'arrêt du pivotement des colonnes devient nécessaire. Cette technique convertit les colonnes en lignes, offrant ainsi une représentation des données plus flexible. Bien que MySQL ne fournisse pas de fonction d'expansion explicite, nous pouvons obtenir le même effet grâce à une construction intelligente de requêtes.
Méthode 1 : utilisez UNION ALL pour interroger
Une solution consiste à utiliser une requête UNION ALL, qui ajoute les résultats de plusieurs instructions SELECT ensemble. Dans cet exemple, nous créons une instruction SELECT distincte pour chaque colonne qui doit être développée :
<code class="language-sql">select id, 'a' col, a value from yourtable union all select id, 'b' col, b value from yourtable union all select id, 'c' col, c value from yourtable</code>
Cette requête crée une nouvelle table où chaque ligne représente une paire de valeurs de colonne. Le tableau résultant aura la disposition suivante :
ID | col | value |
---|---|---|
1 | a | a1 |
1 | b | b1 |
1 | c | c1 |
2 | a | a2 |
2 | b | b2 |
2 | c | c2 |
Méthode 2 : utiliser CROSS JOIN
Une autre approche consiste à utiliser CROSS JOIN, qui génère un produit cartésien de plusieurs tables. En combinant votre table avec une table contenant des noms de colonnes, nous pouvons obtenir ce qui suit :
<code class="language-sql">select t.id, c.col, case c.col when 'a' then a when 'b' then b when 'c' then c end as data from yourtable t cross join ( select 'a' as col union all select 'b' union all select 'c' ) c</code>
Cette requête produit le même résultat que la requête UNION ALL, nous donnant une représentation flexible des données pour une analyse plus approfondie ou une manipulation des données.
En implémentant ces techniques de déploiement dans MySQL, vous pouvez extraire efficacement des informations significatives de vos données en les remodelant dans un format plus facilement navigable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!