MySQL 查询到的结果集默认是横向展示的,即每一行代表一条记录,每一列代表一个字段。如果需要将结果集纵向展示,可以使用 MySQL 的转置函数。

转置函数可以将结果集的行列互换,即将行转换为列,将列转换为行。下面是一个示例:

假设有一个名为'students'的表,包含以下字段:

| id | name | age | gender | |----|-------|-----|--------| | 1 | Alice | 18 | Female | | 2 | Bob | 20 | Male | | 3 | Cindy | 19 | Female |

查询语句为:

SELECT *
FROM students

默认的结果集是这样的:

| id | name | age | gender | |----|-------|-----|--------| | 1 | Alice | 18 | Female | | 2 | Bob | 20 | Male | | 3 | Cindy | 19 | Female |

如果需要将结果集纵向展示,可以使用如下语句:

SELECT 'id', GROUP_CONCAT(id SEPARATOR '\n') AS 'value'
FROM students
UNION ALL
SELECT 'name', GROUP_CONCAT(name SEPARATOR '\n') AS 'value'
FROM students
UNION ALL
SELECT 'age', GROUP_CONCAT(age SEPARATOR '\n') AS 'value'
FROM students
UNION ALL
SELECT 'gender', GROUP_CONCAT(gender SEPARATOR '\n') AS 'value'
FROM students

这样得到的结果集是这样的:

| id | name | age | gender | |--------|--------------|---------|--------| | 1\n2\n3 | Alice\nBob\nCindy | 18\n20\n19 | Female\nMale\nFemale |

在这个结果集中,每一列代表一个字段,每一行代表该字段对应的值。由于每个字段的值可能有多个,因此使用了GROUP_CONCAT函数将它们合并到一起,并使用'\n'作为分隔符。

需要注意的是,转置函数得到的结果集可能会比较长,因此需要适当地使用分页等技术来控制结果集的大小。

MySQL 查询结果集纵向展示:使用转置函数实现

原文地址: https://www.cveoy.top/t/topic/oJYw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录