SQL语句小tips(持续更新)

简介: 统计非法数据 判断people_id是否是32为字母组成的,统计不满足要求的数据 SELECT COUNT(IF(BINARY people_id NOT REGEXP '^[0-9a-z]{32}',TRUE,NULL)) AS people_id_illegality_cnt FROM ...

统计非法数据

判断people_id是否是32为字母组成的,统计不满足要求的数据

SELECT COUNT(IF(BINARY people_id NOT REGEXP '^[0-9a-z]{32}',TRUE,NULL)) AS people_id_illegality_cnt FROM people_day

if 表达式

IF( expr1 , expr2 , expr3 )

expr1 的值为 TRUE,则返回值为 expr2 
expr1 的值为FALSE,则返回值为 expr3

其中TRUE,select出来是1

 

BINARY

where条件加入BINARY的话,可以对大小写敏感,默认mysql是不区分大小写的 

 

非空判断,如果为空置为0,非空取当前值

两种方法:

1. 利用if+isnull判断是否为空

select if(ISNULL(sum(final_amount)),0,sum(final_amount)) as final_amount_total from day_income where day=20180821 and income_type=1;

2 . 利用COALESCE函数

COALESCE(value1,...) :返回第一个非NULL的参数

  说明:返回列表中第一个非空值,如果没有非NULL值,则返回NULL。

  

mysql> SELECT COALESCE(NULL,1);
        -> 1
mysql> SELECT COALESCE(NULL,NULL,NULL);
        -> NULL
select COALESCE(sum(final_amount),0)  as final_amount_total from day_income where day=20180822 and income_type=1;

 

虽千万人,吾往矣!
目录
相关文章
|
6月前
|
SQL 人工智能 关系型数据库
PostgreSQL 常用SQL(持续更新...)
PostgreSQL 常用SQL(持续更新...)
|
SQL XML Oracle
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
507 0
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
|
5月前
|
SQL PHP
thinkphp之进阶sql语法,持续更新
thinkphp之进阶sql语法,持续更新
30 0
|
5月前
|
SQL 存储 关系型数据库
SQL 使用心得【持续更新】
SQL 使用心得【持续更新】
|
5月前
|
SQL Oracle 关系型数据库
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
71 0
|
SQL 存储 缓存
一文搞懂MySQL中一条SQL语句是如何执行的
一文搞懂MySQL中一条SQL语句是如何执行的
|
SQL 存储 关系型数据库
MySQL的第一篇文章——了解数据库、简单的SQL语句
MySQL的第一篇文章——了解数据库、简单的SQL语句
|
SQL 程序员 开发工具
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
534 0
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
|
SQL 数据库 数据安全/隐私保护
使用SQL语句 查询电话号码 加密显示
使用SQL语句 查询电话号码 加密显示
327 0
使用SQL语句 查询电话号码 加密显示