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
Patricia Arquetteoriginal
2025-01-25 13:17:101000parcourir

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

<code class="language-sql">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;</code>

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:
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