mysql rownum groupby_一般Mysql常见函数记录

1 group_concat

功能: 将group by产生的同一个分组中的值连接起来,返回一个字符串结果

语法: group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )

tips:

[]内为可选, 分隔符不默认是逗号

,

应用场景: 常见一对多表结构关系,将根据一表方分组,查询对应多表某列数据,以规定的格式拼接成字符串

eg:

# 查询用户表所有信息SELECT * FROM `userinfo`12

f5195e735b26e43d367099839793ecf0.png

# 根据brand分组, 查询每个brand的title,并以逗号,拼接select brand ,GROUP_CONCAT(title) from `userinfo` GROUP BY brand;12

c251bc088074d985971672644390d901.png

# 根据brand分组, 查询每个brand的title,并以美元符号$拼接

select brand ,GROUP_CONCAT(title separator '$') from `userinfo` GROUP BY brand;12

6df7ed095c9a9263a5f5889e464f9a36.png

2 @i:=@i+1

Oracle中有一个伪列

rownum,在查询结果时生成一组递增的序列号,可以用于分页截断等作用.

Mysql中没有该伪列,可通过上述模拟生成一列自增序号.

功能: 在查询结果时生成一组递增的序列号

语法:

SELECT (@i:=@i+1) as rownum , 查询字段 FROM 查询表名 ,(select @i:=0) as a

tips:

(select @i:=0) 定义初始序号为0(可更换为其他如10,20,…),且必须起别名,别名无规定,不与查询表名相同即可.

(@i:=@i+1) 定义递增规则,每次递增为1(可更换为5,10,…)

# 查询用户表所有信息SELECT * FROM `userinfo`12

f5195e735b26e43d367099839793ecf0.png

# 添加自增序列号 初始为0,每次递增1SELECT (@i:=@i+1) as rownum , u.* FROM `userinfo` u ,(select @i:=0) a12

a6437bf277832baf4295bde049cb7c46.png

# 添加自增序列号 初始为10,每次递增5SELECT (@i:=@i+5) as rownum , u.* FROM `userinfo` u ,(select @i:=10)  a12

807e8e3813e0ca5717d593a2234b405d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值