Maison > base de données > tutoriel mysql > Comment pivoter les lignes MySQL en un nombre dynamique de colonnes?

Comment pivoter les lignes MySQL en un nombre dynamique de colonnes?

Patricia Arquette
Libérer: 2025-01-25 13:17:10
original
1033 Les gens l'ont consulté

How to Pivot MySQL Rows into a Dynamic Number of Columns?

Row Mysql Row: la réalisation du nombre de colonnes dynamiques

Dans MySQL, même si le nombre de colonnes est inconnu, vous pouvez convertir efficacement la ligne en colonne, la méthode consiste à combiner la fonction polymère et la requête dynamique.

Pivot dans la requête en utilisant l'instruction de cas

Pour voir le tableau mentionné dans la question, veuillez utiliser la fonction Count () avec une instruction de cas:

Le pivot dynamique

SELECT pt.partner_name,
  COUNT(CASE WHEN pd.product_name = 'Product A' THEN 1 END) AS ProductA,
  COUNT(CASE WHEN pd.product_name = 'Product B' THEN 1 END) AS ProductB,
  COUNT(CASE WHEN pd.product_name = 'Product C' THEN 1 END) AS ProductC,
  COUNT(CASE WHEN pd.product_name = 'Product D' THEN 1 END) AS ProductD,
  COUNT(CASE WHEN pd.product_name = 'Product E' THEN 1 END) AS ProductE
FROM partners pt
LEFT JOIN sales s ON pt.part_id = s.partner_id
LEFT JOIN products pd ON s.product_id = pd.prod_id
GROUP BY pt.partner_name;
Copier après la connexion

Afin de générer dynamiquement des requêtes de pivot en fonction du nombre de produits, des déclarations de pré-traitement:

Cette requête construit dynamiquement les instructions SQL basées sur la table de produits pour s'assurer que le nombre de colonnes du résultat correspond au numéro de produit.

Cette réponse révisée maintient l'image et fournit une réécriture plus concise et à la nature du contenu technique.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal