-- 示例代码:使用 GROUP_CONCAT 函数实现列转行
-- 假设有一个表 `sales`,结构如下:
-- +----+-------+--------+
-- | id | name | amount |
-- +----+-------+--------+
-- | 1 | Alice | 100 |
-- | 2 | Bob | 200 |
-- | 3 | Alice | 150 |
-- | 4 | Bob | 250 |
-- +----+-------+--------+
-- 我们想将每个 name 的 amount 列转为一行显示,可以使用以下 SQL 查询:
SELECT
name,
GROUP_CONCAT(amount ORDER BY id SEPARATOR ', ') AS amounts
FROM
sales
GROUP BY
name;
-- 查询结果:
-- +-------+-----------------+
-- | name | amounts |
-- +-------+-----------------+
-- | Alice | 100, 150 |
-- | Bob | 200, 250 |
-- +-------+-----------------+
-- 解释说明:
-- 1. GROUP_CONCAT 是 MySQL 中用于将多行数据合并成一行的函数。
-- 2. ORDER BY id 确保了合并时按照 id 的顺序排列。
-- 3. SEPARATOR ', ' 指定了合并后的分隔符为逗号和空格。
-- 4. GROUP BY name 将相同名字的数据分组,然后对每个分组应用 GROUP_CONCAT 函数。
上一篇:mysql 版本查询
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站