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 ...
随机推荐
- 移除元素-LeetCode27 双指针
力扣链接:https://leetcode.cn/problems/remove-element/ 题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返 ...
- mysql安装及访问配置
安装教程参考:https://www.cnblogs.com/hjw-zq/p/8809227.html 下载地址:https://dev.mysql.com/downloads/mysql/ 例:h ...
- 疫情可视化part3
前言 之前在part2中说的添加自定义主题配色已经开发完成了,除此之外我还添加了一些的3d特效. 前期文章 这是part1的文章:https://blog.csdn.net/xi1213/articl ...
- TypeScript 之 Class
class private 和 # 的区别 前缀 private 只是TS语法,在运行时不起作用,外部能够访问,但是类型检查器会报错 class Bag { private item: any } 修 ...
- 安装aio-pika报错
报错内容: WARNING: You are using pip version 21.1.2; however, version 21.3.1 is available. You should co ...
- NOIP2022 退役记
无所谓,我还能卡队线. 无所谓,我还能被卡校线.
- LeetCode-02 两数相加(Add Two Numbers)
描述 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和. 您 ...
- [Leetcode]旋转链表
题目 代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * Li ...
- 51NOD5213A 【提高组/高分-省选预科 第一场【M】】序列
小 Y 酷爱的接龙游戏正是这样.玩腻了成语接龙之后,小 Y 决定尝试无平方因子二元合数接龙,规则如下: 现有 \(n\) 个不超过 \(K\) 的合数,每个合数 \(a\) 均可表示为 \(a=pq( ...
- Ubuntu20.04/22.04 安装 Arduino IDE 2.x
这周收到两片基于LGT8F328P LQFP32的Arduino Mini EVB, 机器上没有 Arduino 环境需要新安装, 正好感受一下新出的 Arduino IDE 2.x, 记录一下 Ub ...