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

您所在的位置:网站首页 数据分列怎么分两列 MySQL根据指定列的值将一列分为多列显示

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

2023-07-27 04:12| 来源: 网络整理| 查看: 265

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` 实现效果

数据示例 实现效果

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3