Rumah  >  Soal Jawab  >  teks badan

MySQL - Bagaimana untuk menukar lajur kepada baris?

<p><br /></p> <pre class="brush:php;toolbar:false;">ID | 1 |. a1 | 2 |. b2 |. <p>Bagaimana untuk menyusun semula baris ke dalam ID, pengepala lajur, nilai? </p> <pre class="brush:php;toolbar:false;">1 | 1 |. b1 | 1|c1|c 2 |. a2 | 2 |. b2 | 2 |. c2 |. <p><br /></p>
P粉533898694P粉533898694453 hari yang lalu540

membalas semua(1)saya akan balas

  • P粉511896716

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

    Anda cuba menyongsangkan data. MySQL tidak mempunyai fungsi terbalik, jadi anda perlu menggunakan pertanyaan UNION ALL untuk menukar lajur kepada baris:

    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

    Lihat SQL Fiddle dengan Demo.

    Ini juga boleh dicapai menggunakan 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

    Lihat SQL Fiddle dengan Demo

    balas
    0
  • Batalbalas