MySQL Row to Column

mysql, row

Solution

How about this??

SELECT  
  GROUP_CONCAT(if(colHeader = 'Header 1', value, NULL)) AS 'Header 1', 
  GROUP_CONCAT(if(colHeader = 'Header 2', value, NULL)) AS 'Header 2', 
  GROUP_CONCAT(if(colHeader = 'Header 3', value, NULL)) AS 'Header 3' 
FROM myTable; 

Demo

Note, you will need `GROUP BY` statement when there are more data of ids as shown below in Demo 2.

Demo 2

Problem

can any one help me on how can I create a query output using the row data on the source table as a header on my output. Please see below for illustration. E.G. Row Data: ``` +-----------+----------+ | colHeader | value | +-----------+----------+ | Header1 | value 1 | +-----------+----------+ | Header2 | value 2 | +-----------+----------+ | Header3 | value 3 | +-----------+----------+ ``` Output: ``` +-----------+-----------+-----------+ | Header1 | header2 | Header3 | +-----------+-----------+-----------+ | Value 1 | value 2 | Value 3 | +-----------+-----------+-----------+ ``` Is it possible?? Here is my MySQL script. I don't think if is it the right way. Is there any idea on how could i arrive on the above output? ``` SELECT t1.value AS `Header1`, t2.value AS `Header2`, t3.value AS `Header3` FROM (SELECT * FROM table1 WHERE colHeader='Header1') t1 JOIN (SELECT * FROM table1 WHERE colHeader='Header2'3) t2 JOIN (SELECT * FROM table1 WHERE colHeader='Header3') t3; ```

Original source