group by 、concat_ws()、 group_caoncat()的使用
group系列
之前觉得这里简单不需要再进行总结了。后来发现还是需要总结巩固一下,还是有一些方法之类的之前未使用过。这里来重新整理,记录一下。
group by
将表中的数据根据某个条件进行分组。
比如下面这张表:

如果我们按照班级进行分组 那么数据将会是这样的:

通过mysql执行表格数据进行校验:

select classname ,GROUP_CONCAT(id,name,courseName,score SEPARATOR '%') from winfun GROUP BY classname;
运行结果:
group_concat()待会再总结。

根据group by的特性,这也是为什么通过group by进行分组后,我们对数据操作需要借助一些函数。
分组后数据变成了一行中包含多条数据,没办法在mysql中通过表格表现出来。
concat_ws()函数
caoncat_ws()函数可以把字段之间拼接起来
官网示例:
mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
-> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');
-> 'First name,Last Name'
功能就是将字符串通过自己设定的分隔符拼接起来:
select CONCAT_WS(',,,','he','ll','o');
运行结果:

group_concat()函数
在group by中使用过该函数,它可以把通过group by分组后后面的数据拼接起来。
通过group by分组后的数据:

如果我们按照classname分组,那么分组后当前组的数据,就是group_concat()的主要拼接对象。

group_concat()语法:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
示例sql:
select classname ,GROUP_CONCAT(id,name,courseName,score ORDER BY score SEPARATOR '%') from winfun
GROUP BY classname;
group_caoncat(要拼接的数据[,要拼接的数据...] [order by column desc|asc] SEPARATOR 'string')
-- SEPARATOR 这里设置每条数据间的分割符
运行结果:

这里我们可以和上面的concat_ws()函数一起来使用:
select classname ,GROUP_CONCAT(CONCAT_WS(' | ',id,name,courseName,score) ORDER BY score SEPARATOR '%') from winfun GROUP BY classname;
运行结果:

group by 、concat_ws()、 group_caoncat()的使用的更多相关文章
- mysql基于“报错”的注入
报错是如何转为xss的? mysql语句在页面报错,泄露信息 ===================================================================== ...
- MYSQL报错注入方法整理
1.通过floor暴错 /*数据库版本*/ SQL http://www.hackblog.cn/sql.php?id=1 and(select 1 from(select count(*),conc ...
- MySQL暴错注入方法
mysql暴错注入方法整理,通过floor,UpdateXml,ExtractValue,NAME_CONST,Error based Double Query Injection等方法 1.通过fl ...
- 别人的渗透测试(三)--SQL显错注入
续上一章. 安全狗拦下7成的人,过狗是门学问,偷笑.jpg.很感谢和https://home.cnblogs.com/u/xishaonian/ 博主能一起研究过狗. 说多了,言归正传SQL注入大显错 ...
- 大数据入门到精通16--hive 的条件语句和聚合函数
一.条件表达 case when ... then when .... then ... when ... then ...end select film_id,rpad(title,20," ...
- MySQL暴错注入方法整理
1.通过floor暴错 /*数据库版本*/ http://www.waitalone.cn/sql.php?id=1+and(select 1 from(select count(*),concat( ...
- MySQL基于报错注入2
目标站点: 0x1 注入点判断 http://www.xxxxxx.com/pages/services.php?id=1 #true http://www.xxxxxx.com/pages/serv ...
- MySQL报错注入总结
mysql暴错注入方法整理,通过floor,UpdateXml,ExtractValue,NAME_CONST,Error based Double Query Injection等方法. 报错注入: ...
- MySQL的注入总结
0x01 MySQL 5.0以上和MySQL 5.0以下版本的区别 MySQL5.0以上版本存在一个叫information_schema的数据库,它存储着数据库的所有信息,其中保存着关于MySQL服 ...
- SQL注入常用命令
1. 数据库查询版本 Mssql select @@version Mysql select vresion()/select @@version oracle select banner from ...
随机推荐
- node学习01
1.前言 Node.js 是一个开源和跨平台的 JavaScript 运行时环境 Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核). 这使得 N ...
- JavaEE Day07 HTML
今日内容 Web概念概述 HTML 一.Web概念概述 1. JavaWeb:使用Java语言开发的基于互联网的项目 2.软件架构 C/S架构:Client/Server--- 客户端/服务器端(安卓 ...
- K8S 部署电商项目
Ingress 和 Ingress Controller 概述 在 k8s 中为什么会有 service 这个概念?Pod 漂移问题 Kubernetes 具有强大的副本控制能力,能保证在任意副本(P ...
- Windows10下python3和python2同时安装(一)安装python3和python2
Windows10下python3和python2同时安装(一) 安装python3和python2 特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似 ...
- 解读JVM级别本地缓存Caffeine青出于蓝的要诀 —— 缘何会更强、如何去上手
大家好,又见面了. 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面.如果感兴趣,欢迎关注以获取后续更新. 在前面的几篇文章中,我们一起聊了下本地 ...
- python中函数教程
函数的基本概念 1.什么是函数? 函数相当于一种工具,就是把一串代码装到一起,我们下次需要用的这个功能的时候可以直接使用 函数相当于是工具(具有一定功能) 不用函数 修理工需要修理器件要用锤子 原地打 ...
- Windows下使用VSCode搭建IDA Python脚本开发环境
由于本人是VSCode的重度沉迷用户,需要写代码时总会想起这个软件,因此选择在VSCode中搭建IDA Python的开发环境 本文适用的环境如下: 1.操作系统 windows 2.Python3 ...
- (java 实现开箱即用基于 redis 的分布式锁
项目简介 lock 为 java 设计的分布式锁,开箱即用,纵享丝滑. 开源地址:https://github.com/houbb/lock 目的 开箱即用,支持注解式和过程式调用 基于 redis ...
- 9、IDEA回退Git版本
转载自 在工作中有时候会要求我们将以前提交的代码新开一个分支,而把之前提交的分支回退到以前某个版本. 1.通过IDEA查看Git历史记录,复制当前版本号. 2.记录当前版本号后,再复制你要回退的版本号 ...
- [OpenCV实战]15 基于深度学习的目标跟踪算法GOTURN
目录 1 什么是对象跟踪和GOTURN 2 在OpenCV中使用GOTURN 3 GOTURN优缺点 4 参考 在这篇文章中,我们将学习一种基于深度学习的目标跟踪算法GOTURN.GOTURN在Caf ...