了解mysql concat()函数
concat(arg1,arg2,....):将形参对应字段的值组合成一个字符串
假设:现在有一张学生表(test_user)
将这三个字段组合成一个字符串作为第四个字段
select test_user.*,
concat(test_user.id,test_user.`name`,test_user.sex) as introduction
from
test_user
GROUP BY `name`;
但是查询出来的数据没有分割符,可以在concat中加入常量
select test_user.*,
concat(test_user.id,',',test_user.`name`,',',test_user.sex) as introduction
from
test_user
GROUP BY `name`;
这样写如果分隔符都一样,又要一直加,那不是很麻烦。
mysql提供另一个函数concat_ws(separator,arg1,arg2,.....),第一个参数为分隔符,第二个以后的参数为字段名
select
u.*,
concat(u.id,',',u.`name`,',',u.sex) as introduction,
CONCAT_WS('.',u.id,u.`name`,u.sex) as xinxi
from
test_user u
GROUP BY u.`name`;
这些只是对单条记录数据的拼接。
现在多了张课程表(test_subject)
想查询每个学生的课程有哪些
select * from test_user LEFT JOIN test_subject on test_user.id = test_subject.user_id;
但是这样看起来不够直观。那就干脆先按名称分组。
select
*
from
test_user LEFT JOIN test_subject
on test_user.id = test_subject.user_id
GROUP BY test_user.`name`;
但是分完组之后,课程只剩下一个了,没有达到预期的要求,
mysql提供一个函数GROUP_CONCAT(arg1),内部的形参在分组时,则在arg1字段中将属于该分组的值字段进行拼接,拼接顺序会被order by影响
select
test_user.*,
GROUP_CONCAT(test_subject.`subject`) as `subject`
from
test_user LEFT JOIN test_subject
on
test_user.id = test_subject.user_id
GROUP BY
test_user.`name`;
完成。清晰明了的显示各个学生所有的科目。
了解mysql concat()函数的更多相关文章
- MySQL concat函数的使用
MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习. MySQL concat函数使用方法:CONCAT(str1 ...
- [转载]MySQL concat函数的使用
MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习. MySQL concat函数使用方法:CONCAT(str1 ...
- 带您了解mysql CONCAT()函数
CONCAT()函数是mysql中非常重要的函数,可以将多个字符串连接成一个字符串,下文对该函数作了详细的阐述,希望对您有所帮助. mysql CONCAT()函数用于将多个字符串连接成一个字符串,是 ...
- mysql CONCAT函数
有时候我们需要使用coacat函数拼接一些字段的生成一个字符串,比如:select concat(field1,field2,field3) from xxx: 这时候我们就会的到一个这些字段的值拼 ...
- 连接列值 mysql CONCAT函数
mysql concat(str1,str2,...) 返回结果为连接参数产生的字符串,如果任何一个参数带有null,则返回结果为null.如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如 ...
- mysql concat函数进行模糊查询
concat() 函数,是用来连接字符串. 精确查询: select * from user where name=”zhangsan” 模糊查询: select * from user where ...
- MySQL concat函数里面单引号的使用
通过concat拼字符串的时候,如果语句里面需要使用单引号,可以使用两个单引号来代替一个引号
- ThinkPHP第十一天(关联模型使用,独立分组配置,MySQL concat用法)
1.关联模型的使用 定义方式:新建一个类文件UserRelationModel.class.php Class UserRelationModel extends RelationModel{ pro ...
- MySQL中concat函数(连接字符串)
MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...
随机推荐
- anyRTC 重磅推出在线实时 K 歌解决方案
在线音乐领域一直是各大资本巨头投资的热点,从抢占版权到现在的"云上之争", 主流平台的战火从版权资源转向创新领域扩延.而如今,在线K歌正在成为抢占"云音乐"市场 ...
- 自学linux——9.Linux的权限概述
Linux的权限概述 一. 权限概述 1.权限介绍 在多用户(可以不同时)计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权力,像是文件夹.特定系统指令的使用或存储量的限制 ...
- 从net到java:java快速入门
学习java那是不可能的,到为什么不学习一下呢.仅为总结.希望自己在不久的将来能书写优美的java程序.加油!奥利给 1.注释 注释的重要性不言而喻,我们不管写什么代码注释必不可少,那么java的注释 ...
- Android面试大揭秘!从技术面被“虐”到征服CTO,全凭这份强到离谱的pdf
在笔者面试这一个月,看了不少文章,也刷了不少面试题,但真正有深度,适合4年及以上Android高工的内容少之又少 在面试准备阶段,笔者准备了三个月左右的时间,结合相关资料及源码,完成了一系列的深度学习 ...
- MySQL Replication Thread States
1.主节点线程状态(Replication Master Thread States): Finished reading one binlog; switching to next binlog 线 ...
- dubbo学习实践(4)之Springboot整合Dubbo及Hystrix服务熔断降级
1. springboot整合dubbo 在provider端,添加maven引入,修改pom.xml文件 引入springboot,版本:2.3.2.RELEASE,dubbo(org.apache ...
- 如何在 Matlab 中绘制带箭头的坐标系
如何在 Matlab 中绘制带箭头的坐标系 如何在 Matlab 中绘制带箭头的坐标系 实现原理 演示效果 完整代码 实现原理 使用 matlab 的绘制函数时,默认设置为一个方框形的坐标系, 图1 ...
- MySQL为什么不支持中文排序?
前言 或许都知道,MySQL不支持中文排序,这样的说法可以说对也可以说也不对.接下来我们分析一下: 首先执行命令,查看编码集: SHOW VARIABLES LIKE 'character_set%' ...
- OSI网络参考模型学习
文章目录 一.计算机与网络的发展 1.1 批处理系统 1.2 分时系统 1.3 计算机之间的通信 1.4 基于分组交换技术的计算机网络 1.5 互联网时代的计算机网络 1.6 计算机网络中协议的规定 ...
- Linux-常见报错注释
1. command not found 命令没有找到 2. No such file or directory 没有这个文件或目录 3. Permission denied ...