栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

MySQL根据指定列的值将一列分为多列显示

MySQL根据指定列的值将一列分为多列显示

MySQL根据指定列的值将一列分为多列显示 情景:

在某些系统设计中,多个含义的数据可能不是用多个字段去表示的,而是通过一个类型字段和值去存储,
例如:某个系统中有多种金额类型,那么可能是通过三个字段进行存储:订单号、金额种类、金额。

在进行查询的时候可能需要同时取出几种类型的数据。一般的做法是将改订单的各个种类数据都取出来,在后台使用代码拼接,但是其实还有一种方法。使用聚合和case来实现。

参考方法: 数据表结构

现有一个翻译表 translate,有三个字段:key,language、translate,分别表示:键,语言、翻译结果。

需求

现在要同时查出某个键的繁体中文和英文,并显示在一行,可以通过下面的方法实现:

SQL语句
# 将 translate 列按照语种分为两列显示
SELECt 
	`key`,
	 GROUP_CONCAT((case when language = 'zh_HK' then translate ELSE null END)) as '繁体中文',
	 GROUP_CONCAT((case when language = 'en_US' then translate ELSE null END)) AS '英文'
FROM `translate` 
GROUP BY `key`
实现效果


注意:此方法未做大数据性能测试,生产环境请自行测试。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710376.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号