MySQL 查询结果集纵向展示:三种方法详解
要将 MySQL 查询结果集纵向展示,可以使用以下三种方法:
- 使用 GROUP_CONCAT 函数将查询结果合并为一个字段,然后使用 SUBSTRING_INDEX 函数和 UNION ALL 操作将结果拆分成多行。例如:
SELECT SUBSTRING_INDEX(GROUP_CONCAT(column_name ORDER BY sort_column SEPARATOR '\n'), '\n', 1) AS col1
FROM table_name
UNION ALL
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(column_name ORDER BY sort_column SEPARATOR '\n'), '\n', 2), '\n', -1) AS col2
FROM table_name
UNION ALL
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(column_name ORDER BY sort_column SEPARATOR '\n'), '\n', 3), '\n', -1) AS col3
FROM table_name;
- 使用 UNION ALL 操作将多个查询语句合并成一个结果集,每个查询语句只查询一个字段。例如:
SELECT column_name1 AS col1 FROM table_name
UNION ALL
SELECT column_name2 AS col1 FROM table_name
UNION ALL
SELECT column_name3 AS col1 FROM table_name;
- 使用 PIVOT 操作将行转换为列,例如:
SELECT *
FROM (
SELECT column_name, col_type
FROM table_name
) AS t
PIVOT (
MAX(column_name)
FOR col_type IN ('col1', 'col2', 'col3')
) AS p;
这三种方法各有优劣,您可以根据实际情况选择最适合您的方法。
原文地址: https://www.cveoy.top/t/topic/oJYa 著作权归作者所有。请勿转载和采集!