Maison  >  Questions et réponses  >  le corps du texte

MySQL - Comment convertir des colonnes en lignes ?

<p><br /></p> <pre class="brush:php;toolbar:false;">ID a b | 1 | 2 | a2 | b2 | c2≪/pré> <p>Comment réorganiser les lignes en identifiants, en-têtes de colonnes et valeurs ? </p> <pre class="brush:php;toolbar:false;">1 a1 | 1 | 1|c1|c 2 | 2 | 2 | c2 | c≪/pré> <p><br /></p>
P粉533898694P粉533898694453 Il y a quelques jours539

répondre à tous(1)je répondrai

  • P粉511896716

    P粉5118967162023-07-25 00:05:48

    Vous essayez d'inverser les données. MySQL n'a pas de fonction inverse, vous devez donc utiliser une requête UNION ALL pour convertir les colonnes en lignes :

    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

    Voir SQL Fiddle avec la démo.

    Cela peut également être réalisé en utilisant CROSS JOIN :

    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

    Voir SQL Fiddle avec la démo

    répondre
    0
  • Annulerrépondre