我需要创建2个额外的数据列在同一个表中的另一列。i有一个名为Role的列,指定不同的角色,例如主管、行政人员等现在,我想为Supervisor和Administrator分别创建一个列,其中,客户端名称与示例附加的expected result相同
ClientName Role Name
A123 Supervisor Dave 1
A123 Administrator Dave 2
Q012 Supervisor Jane2
Q012 Administrator Kent3
Select *
From contacts
我想从联系人表中获得以下内容
ClientName Supervisor Administrator
A123 Dave1 Dave2
2条答案
按热度按时间icomxhvb1#
创建两个新列Supervisor和Administrator,并运行两个查询,一个用于更新主管,如
第二步更新admin
flvtvl502#
如果你只需要数据检索,而不需要改变表结构,那么一个简单的条件聚合就可以了。
对于给定的数据示例,
查询
结果
如果您想更改表结构。使用单个事务创建一个临时表,将数据存储在临时表中,然后更改结构并将数据插入回主表。
我已经考虑到你正在使用InnoDB存储引擎。
See example