回答編集履歴

2

追記

2016/07/25 13:34

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -67,3 +67,41 @@
67
67
 
68
68
 
69
69
  もっといいやり方があるかもしれませんが・・・
70
+
71
+
72
+
73
+ 追記
74
+
75
+ ---
76
+
77
+ フィールド名直書きでいいなら、
78
+
79
+ ```SQL
80
+
81
+ SELECT
82
+
83
+ F.row1,
84
+
85
+ T.`key` AS row2,
86
+
87
+ CASE F.row1
88
+
89
+ WHEN 'a' THEN T.A
90
+
91
+ WHEN 'b' THEN T.B
92
+
93
+ WHEN 'c' THEN T.C
94
+
95
+ END AS val
96
+
97
+ FROM tbl AS T,
98
+
99
+ (SELECT COLUMN_NAME AS row1
100
+
101
+ FROM INFORMATION_SCHEMA.COLUMNS
102
+
103
+ WHERE COLUMN_NAME != 'key' AND TABLE_NAME = 'tbl') AS F
104
+
105
+ ORDER BY row1,row2;
106
+
107
+ ```でいいね。

1

間違い修正

2016/07/25 13:34

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  END IF;
42
42
 
43
- SET @STMT = CONCAT(@STMT, 'SELECT "',field,'" AS row1, k AS row2,',field,' AS val FROM t_test');
43
+ SET @STMT = CONCAT(@STMT, 'SELECT "',field,'" AS row1, `key` AS row2,',field,' AS val FROM テーブル名');
44
44
 
45
45
  END LOOP;
46
46