mysql函数日志

本文介绍了MySQL中的几个重要函数用法,包括:1) 使用子查询和AS创建临时表;2) GROUP_CONCAT函数用于连接字段,可指定分隔符和排序;3) SUBSTRING_INDEX函数用于按指定字符截取字符串;4) WHERE、HAVING和IN语句在查询中的应用,特别是处理重复记录和分组查询的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、select * from (select * from table) as tmp

from后面紧跟的是表,而使用select语句选出来的是一组元组,使用as给这个元组重命名为a的一张表

2、group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

select id,group_concat(name) from aa group by id;  //默认concat分隔符“,”号

3、substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('15,151,152,16',',',2),',',-1);==>得到结果为: 151

4、


where、having、in 语句

1、字段重复记录查询:数据条数大于1的就是重复的数据

select  name,count(*) as count from  student group by name having count>1;   //查询重名的学生

2、主从查询语句:查出所有的重名学生,先子查询having出名字重复name(只返回name),再主where查询出name集中的学生;

select * from student as s where (s.name) in (select name from student group by name having count(*) > 1);

where后为过滤条件语句,having后为以聚合函数为过滤条件语句,in后为集合交集语句;

主从查询时,同一字段需要做点运算:主查询语句的表名需要取别名,因为子查询用的表名和主查询的表名需要区分;

HAVING 子句对 GROUP BY 子句设置条件的方式,与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。

select id, name from student group by name having count(*) > 1

WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。 
GROUP BY 子句用来分组 WHERE 子句的输出。 
HAVING 子句用来从分组的结果中筛选行。
ORDER BY 子句可用于排序 GROUP BY 子句的输出

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值