MySql将记录中的某个字段进行合并
短信预约 -IT技能 免费直播动态提醒
一 将单条记录中的某个字段合并: concat()
假如对于user表,如下:
id | class | name | age |
---|---|---|---|
1 | 1001 | zh | 18 |
2 | 1001 | en | 19 |
3 | 1002 | cs | 18 |
4 | 1002 | jp | 19 |
如果想将name 和age 作为一个字段显示, 有:
select id, class, concat(name, ": ", age) as name_age from user;
结果:
id | class | name_age |
---|---|---|
1 | 1001 | zh:18 |
2 | 1001 | en:19 |
3 | 1002 | cs: 18 |
4 | 1002 | jp: 19 |
二 将多条记录中的某些字段合并:group_coacat()
依然对上面user表, 若根据年级分组, 并将name和age全部合并在一列中显示, 有:
select class, group_concat(name, ":", age) as name_age from user group by class;
结果为:
class | name_age |
---|---|
1001 | zh:18,en:19 |
1002 | cs:18,jp:19 |
使用group_coacat() 方法默认是以“,”进行分割, 如果希望以其他字符进行分割可使用“separator”, 如:
select class, group_concat(name, ":", age separator ";") as name_age from user group by class;
结果为:
class | name_age |
---|---|
1001 | zh:18;en:19 |
1002 | cs:18;jp:19 |
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341