MySql采用GROUP_CONCAT合并多条数据显示的方法
本文实例讲述了MySql采用GROUP_CONCAT合并多条数据显示的方法,分享给大家供大家参考。具体实现方法如下:
假设有这样一个需求:
1:班级表:
id class_name
2:学生表:
id name class_id
如果我们要查所有的班级以及每个班级下的学生,你一定会想到这样写法:
SELECT
banji.*, user.name
FROM `banji`
left join user
on banji.id=user.`class`
where banji.id=2
这样我们得到的结果的个数是和学生人数相同的,而我希望得到的就是一条数据,而这条数据中还要包含所有学生,可以这样写:
SELECT
banji.*, GROUP_CONCAT(user.name) as names
FROM `banji`
left join user
on banji.id=user.`class`
where banji.id=2
这样就只得到一条结果了,而结果中包含所有的学生name,
id | class_name | names |
2 | 二 | lisi,zhaoliu,liu,小二,xiaoming,小张 |
还可以自定义分隔符:
SELECT
banji.*, GROUP_CONCAT(user.name SEPARATOR "|") as names
FROM `banji`
left join user
on banji.id=user.`class`
where banji.id=2
得到的结果:
id | class_name | names |
2 | 二 | lisi|zhaoliu|liu|小二|xiaoming|小张 |
二 希望本文所述对大家的MySQL数据库程序设计有所帮助。
相关推荐
-
Mysql数据库使用concat函数执行SQL注入查询
SQL注入语句有时候会使用替换查询技术,就是让原有的查询语句查不到结果出错,而让自己构造的查询语句执行,并把执行结果代替原有查询语句查询结果显示出来. 例如:原本查询语句是 复制代码 代码如下: select username,email,content from test_table where user_id=uid; 其中uid,是用户输入的.正常显示结果会出现用户名,用户邮箱,用户留言内容.但是如果uid过滤不严,我们可以构造如下SQL语句来获得任意数据表信息. 复制代码 代码如下: u
-
MySQL中的CONCAT函数使用教程
使用MySQL CONCAT()函数将两个字符串连接起来,形成一个单一的字符串.试试下面的例子: mysql> SELECT CONCAT('FIRST ', 'SECOND'); +----------------------------+ | CONCAT('FIRST ', 'SECOND') | +----------------------------+ | FIRST SECOND | +----------------------------+ 1 row in set (0.00
-
MySQL中group_concat函数深入理解
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa; +------+------+ | id| name | +------+------+ |1 |
-
浅谈mysql中concat函数,mysql在字段前/后增加字符串
MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串. 一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQ
-
mysql的group_concat函数使用示例
MySQL中group_concat函数,完整的语法如下: 复制代码 代码如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 复制代码 代码如下: select * from aa; 复制代码 代码如下: +------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 |
-
mysql利用group_concat()合并多行数据到一行
假设两个表a,b,b中通过字段id与a表关联,a表与b表为一对多的关系.假设b表中存在一字段name,现需要查询a表中的记录,同时获取存储在b表中的name信息,按照常规查询,b表中有多少记录,则会显示多少行,如果需要只显示a表记录行数,则需要把查询name字段得到的多行记录进行合并,可以通过程序实现,但也可直接在sql层完成. 方法: 利用group_concat()方法,参数为需要合并的字段,合并的字段分隔符默认为逗号,可通过参数separator指定,该方法往往配合group by 一起使
-
Mysql的GROUP_CONCAT()函数使用方法
语法: GROUP_CONCAT([DISTINCT] expr [,expr ...][ORDER BY {unsigned_integer | col_name | expr}[ASC | DESC] [,col_name ...]][SEPARATOR str_val]) 下面演示一下这个函数,先建立一个学生选课表student_courses,并填充一些测试数据. SQL代码 复制代码 代码如下: CREATE TABLE student_courses ( stude
-
MySQL统计函数GROUP_CONCAT使用陷阱分析
本文实例分析了MySQL统计函数GROUP_CONCAT使用中的陷阱.分享给大家供大家参考,具体如下: 最近在用MySQL做一些数据的预处理,经常会用到group_concat函数,比如类似下面一条语句 复制代码 代码如下: mysql>select aid,group_concat(bid) from tbl group by aid limit 1; sql语句比较简单,按照aid分组,并且把相应的bid用逗号串起来.这样的句子大家可能都用过,也可能不会出问题,但是如果bid非常多的话,你就
-
浅谈MySQL中group_concat()函数的排序方法
group_concat()函数的参数是可以直接使用order by排序的.666.. 下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要从高到底排序. 可以这样写: SELECT username,GROUP_CONCAT(score ORDER BY score DESC) AS myScore FROM t1 GROUP BY username; 效果如下: 以上这篇浅谈MySQL中group_concat()函数的排序方法就
-
mysql group_concat()函数用法总结
本文实例讲述了mysql group_concat()函数用法.分享给大家供大家参考,具体如下: group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来.要返回哪些列,由函数参数(就是字段名)决定.分组必须有个标准,就是根据group by指定的列进行分组. group_concat函数应该是在内部执行了group by语句,这
-
详解MySQL中concat函数的用法(连接字符串)
MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串. 一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQ
随机推荐
- 深入理解Angularjs向指令传递数据双向绑定机制
- 详解Spring Boot配置文件之多环境配置
- iOS开发之Quartz2D的介绍与使用详解
- Python正则表达式匹配中文用法示例
- XenServer6.0中虚拟机设置自动启动的方法
- 解决微信内置浏览器返回上一页强制刷新问题方法
- php录入页面中动态从数据库中提取数据的实现
- return和break的区别解析
- Android编程UI设计之GridView和ImageView的用法
- php实现利用phpexcel导出数据
- 谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
- 可自删除 开启3389创建用户粘滞键后门的vbs
- javascript 控制图片播放代码
- 深入理解java泛型详解
- python编程实现希尔排序
- Three.js源码阅读笔记(基础的核心Core对象)
- 配置OSPF非纯 Stub 区域NSSA
- go json转换实践中遇到的坑
- 树莓派动作捕捉抓拍存储图像脚本
- java连接mysql数据库实现单条插入和批量插入