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()函数的更多相关文章

  1. MySQL concat函数的使用

    MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习. MySQL concat函数使用方法:CONCAT(str1 ...

  2. [转载]MySQL concat函数的使用

    MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习. MySQL concat函数使用方法:CONCAT(str1 ...

  3. 带您了解mysql CONCAT()函数

    CONCAT()函数是mysql中非常重要的函数,可以将多个字符串连接成一个字符串,下文对该函数作了详细的阐述,希望对您有所帮助. mysql CONCAT()函数用于将多个字符串连接成一个字符串,是 ...

  4. mysql CONCAT函数

    有时候我们需要使用coacat函数拼接一些字段的生成一个字符串,比如:select concat(field1,field2,field3)  from xxx: 这时候我们就会的到一个这些字段的值拼 ...

  5. 连接列值 mysql CONCAT函数

    mysql concat(str1,str2,...) 返回结果为连接参数产生的字符串,如果任何一个参数带有null,则返回结果为null.如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如 ...

  6. mysql concat函数进行模糊查询

    concat() 函数,是用来连接字符串. 精确查询: select * from user where name=”zhangsan” 模糊查询: select * from user where ...

  7. MySQL concat函数里面单引号的使用

    通过concat拼字符串的时候,如果语句里面需要使用单引号,可以使用两个单引号来代替一个引号

  8. ThinkPHP第十一天(关联模型使用,独立分组配置,MySQL concat用法)

    1.关联模型的使用 定义方式:新建一个类文件UserRelationModel.class.php Class UserRelationModel extends RelationModel{ pro ...

  9. MySQL中concat函数(连接字符串)

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

随机推荐

  1. 打开JAVA之门:idea的安装及JAVA环境的创建

    打开JAVA之门:idea的安装及JAVA环境的创建 1.idea的下载安装 首先打开 ->->->(IntelliJ IDEA: The Capable & Ergonom ...

  2. k8s之Service详解-Service使用

    实验环境准备 在使用service之前,首先利用deployment创建出3个pod,注意要为pod设置app=nginx-pod的标签 创建deployment.yaml,内容如下 apiVersi ...

  3. java基础技术集合面试【笔记】

    java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...

  4. Windows10公钥远程连接Linux服务器

    目录 前言 一.环境准备 二.使用步骤 1.服务器安装并配置OpenSSH 2. 本地生成密钥 3. 服务器ssh添加密钥 三 总结 前言 使用公钥远程登陆Linux十分方便,无需输入密码,同时采用V ...

  5. Sqli-Labs less46-53

    less-46 前置基础知识: select * from users order by 1 desc ;使用降序(倒序)排列 select * from users order by 1 asc ; ...

  6. linux ftp ubuntu18.04 实测有效 完整方法 vsftpd

    https://linuxize.com/post/how-to-setup-ftp-server-with-vsftpd-on-ubuntu-18-04/ 除了此链接完整有效,其他网友 大都残缺不全 ...

  7. SQL 练习14

    查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩 SELECT Student.SId,Student.Sname,t.不及格课程数,t.平均成绩 from Student, (SELECT ...

  8. kubebuilder实战之一:准备工作kubebuilder实战之一:准备工作

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. docker安装sonarqube

    目录 一.sonarqube简介 二.安装postgresql数据库 三.sonarqube安装 四.使用教程 五.参考 一.sonarqube简介 SonarQube是管理代码质量的一个开放平台,可 ...

  10. tar.gz 文件解压

    tar.gz 文件解压 解压缩 file.tar.gz 的过程中出现如下所示问题: tar: 它似乎不像是一个 tar 归档文件 tar: 跳转到下一个头 tar: 由于前次错误,将以上次的错误状态退 ...