Bạn đang cố gắng bỏ chia sẻ dữ liệu. MySQL không có chức năng bỏ chia sẻ, vì vậy bạn sẽ phải sử dụng UNION ALL
truy vấn để chuyển các cột thành hàng:
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
Xem SQL Fiddle with Demo .
Điều này cũng có thể được thực hiện bằng cách sử dụng 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