------------------------------------------------------------ courseid|course |coursedesc | ------------------------------------------------------------ 1 | BSIT | Bachelor of science in info tech | 2 | BSCS | Bachelor of science in comp sci | 3 | BSHRM | Bachelor of science in hotel & res |
私はこのコードを持っていると私は結果を与える。この動的変換行
--------------------------------- |course1 | course2 | course3 | --------------------------------- BSIT | BSCS | BSCS |
のようなものに変換したい:
MySQLは、空の結果セットを返します(すなわち、ゼロ行)。
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'count(case when course = ''',
course,
''' then 1 end) AS ',
replace(course, ' ', '')
)
) INTO @sql
from tbl_course;
SET @sql = CONCAT('SELECT course, ', @sql, ' from tbl_course
group by course');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
叫んで停止、およびアプリケーションコードでの – Strawberry
申し訳ありません@Strawberry –
可能な重複表示の問題を扱う考慮してください[MySQLを - の列に行] (https://stackoverflow.com/questions/1241178/mysql-rows-to-columns) – Alexander