统计非法数据

判断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是不区分大小写的

mysql是通过lower_case_table_names参数来控制大小写敏感的

非空判断,如果为空置为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;

where语句里使用if判断。好难,感觉不好

SELECT COUNT(1)
FROM test_tabel
WHERE month = (
SELECT CASE 1
WHEN DAY(CURDATE()) > 5 THEN date_format(curdate(), '%Y-%m')
ELSE date_format(date_sub(curdate(), INTERVAL 1 MONTH), '%Y-%m')
END AS correctMonth
);

find_in_set

在数组的strlist是否存在,如字段ad_type为text,内容为1,2,3,4,5 判断3在不在里面

select * from campaign_plan where find_in_set('',ad_type);

SQL语句小tips(持续更新)的更多相关文章

  1. SQL Server Code tips (持续更新)

    1.  表存在,查询语句也能执行,但是表名下面总是有条红线,说对象名无效 CTRL + SHIFT +R  刷新本地缓存就可以了 2. IDE (Integrated Development Envi ...

  2. Mysql注入小tips --持续更新中

    学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ...

  3. sql语句优化(持续更新)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引 ...

  4. 标准SQL语句大全【持续更新】(navicat12版亲测有效)

    提示:用ctrl+F快速查找相关指令哦 -- 创建数据库 create database test_sql; -- 修改数据库名称(只有 sysadmin 和 dbcreator 固定服务器角色的成员 ...

  5. SQl常用语句总结(持续更新……)

    创建示例数据库 USE master; GO IF DB_ID (N'mytest') IS NOT NULL DROP DATABASE mytest; GO CREATE DATABASE myt ...

  6. SQL语句小总结

    无论是面试过程中,还是未来工作中,SQL都是一定会考到和用到的.所以,在此对之前看过的一些SQL知识点进行一下总结和记录,算是起到一个笔记本的作用.没有深入学习过SQL的和对SQL印象不太深的朋友可以 ...

  7. SQL优化(子文章)(持续更新)

    -----> 总文章 入口 文章目录 [-----> 总文章 入口](https://blog.csdn.net/qq_37214567/article/details/90174445) ...

  8. sql语句小记录

    测试过程中,需要去数据库中查询一些结果,比如验证码 常用的是查询 更新比较少用 删除一般不用 sql查询语句的嵌套用法,比较实用 比如in的用法:第一种:查询多个值时 SELECT "栏位名 ...

  9. SQL题(子文章)(持续更新)

    -----> 总文章 入口 文章目录 [-----> 总文章 入口](https://blog.csdn.net/qq_37214567/article/details/90174445) ...

随机推荐

  1. springboot重定向

    参考https://www.cnblogs.com/kxkl123/p/7800967.html public String test() { return "redirect:/" ...

  2. IE6 PNG不透明问题 (只解决img标签的图片)

    <script type='text/javascript' src="/script/ie6.pngfix.js"></script> 会让一些posit ...

  3. ALL ANY SOME 这样解释好理解很多

    --All:对所有数据都满足条件,整个条件才成立,例如:5大于所有返回的id select * from #A where 5>All(select id from #A) go --Any:只 ...

  4. 一些unity问题的收集

    ---恢复内容开始--- 1.Mono打不开且鼠标点击标签页无反应的解决办法 http://answers.unity3d.com/questions/574157/monodevelop-not-o ...

  5. [leetcode]314. Binary Tree Vertical Order Traversal二叉树垂直遍历

    Given a binary tree, return the vertical order traversal of its nodes' values. (ie, from top to bott ...

  6. mysql5.5以上开启慢查询

    在my.ini配置文件中添加: [mysqld] #开启慢查询 slow_query_log = on #慢查询时间 long_query_time = 0.5 #记录没有使用索引的查询 log_qu ...

  7. JTemplate学习(四)

    注释.自定方法.模板嵌套子模板.循环输出不同class <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "htt ...

  8. PAT 1058 选择题(20)(代码+思路)

    1058 选择题(20 分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100 ...

  9. JVM家族史考【转】

    说起Java虚拟机,许多Java程序员都会潜意识地把它与Sun(虽然太阳已然西落,但永远值得被记忆) HotSpot虚拟机等同看待,也许还有一些程序员会注意到BEA JRockit和IBM J9,但大 ...

  10. action spring 注入错误,如果检查各项注入都没有错误时,考虑struts 是否配置了namespace(如果你有多个namespace="/")

    [ERROR] 2015-01-04 09:42:35,180 (CommonsLogger.java:38) - Exception occurred during processing reque ...