ITPub博客

首页 > 数据库 > MySQL > 一般Mysql常见函数记录

一般Mysql常见函数记录

原创 MySQL 作者:lxz31102 时间:2021-02-23 06:54:16 0 删除 编辑

1 group_concat

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

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

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

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

eg:

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

image-20210221145356847

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

image-20210221145437843

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

image-20210221145541134

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

image-20210221145356847

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

image-20210221151516913

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

image-20210221152437821


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29797838/viewspace-2758502/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Java集合源码分析
请登录后发表评论 登录
全部评论

注册时间:2014-08-09

  • 博文量
    10
  • 访问量
    5107