七种SQL进阶用法

七种SQL进阶用法

1,自定义排序

select * from table  order by FIELD (f1,'enum1' ,'enum2','enum3')

FIELD 函数的作用是 自定义排序,让table表中中的f1字段来按照enum1, enums2,enum3 的方式来进行排序 ,这个排序主要讲究的是若是存在则按照该字段的排序顺序进行主要的排序,若是不存则按照ascll的方式来进行排序,若是没有则进行空排序

2,自定义排序之对于null值的数据进行处理,是放在整个数据首部,还是放在整个数据的尾部

select * from table order by if(ISNULL(f1),0,1) ,f2,f3;

通过if(ISNULL(f1),0,1)来判断是放在查询集的首部还是尾部 

3,采用case when的方式来进行数据的判断

select * ,case when f1 > value1 then '1'

               when f1 > value2 then '2'

                when f1 > value3 then '3'

                when f1 > value4 then '4'  end name 

from table ;

通过case when方式来进行将数据进行分段,并进行处理展示,并添加新的字段名称为name ,

4,自定义字段排序并拼接数据

select f1,

GROUP_CONCAT(f2 order by f3 desc SEPARATOR '_'),

GROUP_CONACT(f3 order by f3 desc SEPARATOR '_')

from table GROUP BY f1;

通过group_concat 函数将 group by 之后的字段进行拼接,并按照separator 为'_'的方式来进行拼接

5,  分组统计数据后再进行统计汇总(with rollup)

select f1,sum(price) from table GROUP BY f1 WITH ROLLUP 

6,子查询提取

with m1 as (select * from table where f1 > 50),

m2 as (select * from table where f2 >65)

select * from m1 where m1.id = m2.id

7,优雅处理数据插入,更新时主键,唯一性重复

1, insert ignore into table(id,f1,f2), (value1,value2,value3);

如果主键存在的话,那么就不会添加该数据,有则忽略,无则添加

2, replace into table(id,f1,f2), (value1,value2,value3); 

有则删除+  插入,无则插入

3, insert  into table(id,f1,f2), (value1,value2,value3) on duplicate key update id = id + 10

如果主键存在则会对该主键执update操作,如果不存在则进行插入操作

相关推荐

  1. SQL

    2024-02-15 14:20:01       47 阅读
  2. 分享7SQL

    2024-02-15 14:20:01       62 阅读
  3. 分享7SQL

    2024-02-15 14:20:01       62 阅读
  4. 分享SQL的7

    2024-02-15 14:20:01       39 阅读
  5. Linux基础和

    2024-02-15 14:20:01       41 阅读
  6. 03---webpack

    2024-02-15 14:20:01       31 阅读
  7. 【Go高】细说 Channel 的

    2024-02-15 14:20:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-15 14:20:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-15 14:20:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-15 14:20:01       82 阅读
  4. Python语言-面向对象

    2024-02-15 14:20:01       91 阅读

热门阅读

  1. conda env退回到之前的版本

    2024-02-15 14:20:01       42 阅读
  2. ubuntu下conda如何设置镜像源(清华镜像源)

    2024-02-15 14:20:01       54 阅读
  3. IDEA玩转Git

    2024-02-15 14:20:01       60 阅读
  4. 12.13 校招 实习 内推 面经

    2024-02-15 14:20:01       57 阅读
  5. Spring Cloud Eureka:服务注册与发现

    2024-02-15 14:20:01       48 阅读
  6. 面对Copilot时代:机遇与挑战的解析

    2024-02-15 14:20:01       46 阅读
  7. 梯度提升树系列9——GBDT在多任务学习中的应用

    2024-02-15 14:20:01       53 阅读