gpt4 book ai didi

mysql - 选择 * 将行值转换为表列名

转载 作者:行者123 更新时间:2023-11-29 05:30:57 25 4
gpt4 key购买 nike

我正在尝试将行值转换为列名。在 stackoverflow 上搜索后,我了解到可以使用 GROUP_CONCAT() 来完成。我试过了,但没有结果。

我想要什么??

我有一张这样的 table :

id  |    staff_id_staff     |   leave_type_id_leave_type    |    days
1 | 41 | Casual | 7
2 | 41 | Earned | 1
3 | 41 | Sick | 4

想要这样的结果:

Casual    |    Earned   |   Sick
7 | 1 | 4

请注意:我不知道 leave_type_id_leave_type 的值(可以是任何值)

这里是 leave_remain 表的代码:

CREATE TABLE IF NOT EXISTS `leave_remain` (
`id_leave_remain` int(11) NOT NULL AUTO_INCREMENT,
`staff_id_staff` int(11) NOT NULL,
`leave_type_id_leave_type` int(11) NOT NULL,
`days` float DEFAULT NULL,
`updated` date DEFAULT NULL,
PRIMARY KEY (`id_leave_remain`),
UNIQUE KEY `leave_type_id_leave_type_UNIQUE` (`leave_type_id_leave_type`),
KEY `fk_leave_remain_staff1` (`staff_id_staff`),
KEY `fk_leave_remain_leave_type1` (`leave_type_id_leave_type`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=108 ;

--
-- Dumping data for table `leave_remain`
--

INSERT INTO `leave_remain` (`id_leave_remain`, `staff_id_staff`, `leave_type_id_leave_type`, `days`, `updated`) VALUES
(82, 41, 16, 16, '2013-02-04'),
(89, 41, 17, 178, '2013-02-06'),
(107, 41, 18, 0, '2013-02-04');

最佳答案

看到您需要处理与此查询类似的内容:

SELECT GROUP_CONCAT(CONVERT(leave_type_id_leave_type,char(10)))
FROM leave_remain
GROUP BY staff_id_staff
UNION
SELECT GROUP_CONCAT(CONVERT(days,char(10)))
FROM leave_remain
GROUP BY staff_id_staff

查看 SqlFiddle 上的演示

关于mysql - 选择 * 将行值转换为表列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14765765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com