MySql黑科技

这篇博客分享了一些MySQL中不常见但非常实用的技巧,包括IFNULL函数结合变量的使用,多字段排序,获取每个分组的前N名,GROUP_CONCAT函数的应用,删除重复数据的方法,通过MD5或SHA1值创建唯一索引,CASE WHEN语句的运用,以及用户排名和联合索引的相关操作。这些技巧可以帮助优化查询和提高数据管理效率。
摘要由CSDN通过智能技术生成

记录一些MySql比较少见但是有奇效的用法。

\rightarrow IFNULL(@rownum:=@rownum+1, @rownum:=1): IFNULL函数,如果第一个表达式为NULL,则返回第二个表达式的值,否则返回第一个表达式的值。给session中定义一个变量有两种方式,set @rownum=0,或者如上IFNULL,但是IFNULL有一个问题下一次使用该session继续查询时,rownum不是从1开始,可以改成如下方式:select  a.* , @rownum:=@rownum+1 from student a , (select @rownum:=0) order by  student_id。

\rightarrow order by后面可以跟两个或者以上的字段,这样可以按多个字段分组,就可以显示一个分组中多个字段了。第一个排序字段是分组字段,因为同一分组字段名称都一样,它们会被聚合到一组,然后再按照第二字段排序。如 select * from student order by class_id desc, student_id desc.

求每个班级前N名学生:

select class_id, student_id, name, row_num from (

  select class_i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值