concat_group的实现,group_concat函数
我在公司做的第一个项目是做订单跟踪查询,里里外外连着十一个表。作为公司的菜鸡,我感到很困惑。
要求之一是在一行中显示多行数据。原谅我的无知,但是我在那里找到了学习这个武器的项目负责人(他就是我心目中的SQL小王)
完整的语法如下
Group_concat([DISTINCT]要连接的字段[按ASC/DESC排序字段排序][分隔符分隔符])
SELECT country_id,items_id,GROUP _ concat(DISTINCT article _ id ORDER BY article _ id desc分隔符-)FROM ` Hz _ article _ type ` GROUP BY country _ id LIMIT 0,30
表格和数据如上。
现在的要求是每个id都是一行,那个id的所有分数都显示在前台。
舞台上的Group_concat!
SELECTid,GROUP _ CONCAT(score)FROMtestgroupGROUPBYid
你可以看到按照id分了三行,分数默认用逗号隔开,但是每个id都有重复的数据,然后就会重复。
SELECTid,GROUP _ CONCAT(distinct score)FROMtestgroupGROUPBYid
分类
SELECTid,GROUP _ CONCAT(scoredorderbyscoredesc)FROMtestgroupGROUPBYid
最后,你可以设置分隔符。
SELECTid,GROUP _ CONCAT(score separator ;)FROMtestgroupGROUPBYid
这样我们的数据按照id的不同分隔符放在一行的前台,可以消除对应的分隔符来划分分数字段,但是可能会出现分数数据类型过大的问题。
达到需求目的!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。