mysql group rollup_MySQL group by with rollup

在mysql数据库的group by语句存在with rollup修饰语,使用with rollup修饰语可以在group by结果后面额外添加一行(该行内容中group by的列会返回一个NULL,其他列则返回相应的内容)。

20f901d91fbdd5c3a8eb5ae6d6a596c9.png

group by .. with rollup的详细使用可以参考官方手册:http://dev.mysql.com/doc/refman/5.5/en/group-by-modifiers.html。为了详细讲解其使用,参考网上的例子进行演示:

(1)建一个简单的表并插入几条简单的数据

CREATE TABLE `t` (

`id` int(11) DEFAULT NULL,

`id2` int(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=gbk

insert into t value(11,11),(12,12),(13,13);

(2)先做一个简单的查询

select id,sum(id2),avg(id2) from t group by id with rollup;

0b12037cf5c095adb143b4770949206b.png

我们可以看到,对于group by的列,with rollup将不会做任何的操作,而是返回一个NULL,而没有group by的列,则根据前面的avg函数和sum函数做了处理。

参考:http://ourmysql.com/archives/1144

——————————————————————————————————————–

有了上面针对group by xxx  with rollup用法的详细介绍,来看《第二届北京网络安全技术大赛夺旗赛Writeup(Web安全篇)》中利用此用法来绕过登陆认证的案例。

本文隐藏内容 登陆 后才可以浏览

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值