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_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(持续更新)的更多相关文章
- SQL Server Code tips (持续更新)
		1. 表存在,查询语句也能执行,但是表名下面总是有条红线,说对象名无效 CTRL + SHIFT +R 刷新本地缓存就可以了 2. IDE (Integrated Development Envi ... 
- Mysql注入小tips  --持续更新中
		学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ... 
- sql语句优化(持续更新)
		1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引 ... 
- 标准SQL语句大全【持续更新】(navicat12版亲测有效)
		提示:用ctrl+F快速查找相关指令哦 -- 创建数据库 create database test_sql; -- 修改数据库名称(只有 sysadmin 和 dbcreator 固定服务器角色的成员 ... 
- SQl常用语句总结(持续更新……)
		创建示例数据库 USE master; GO IF DB_ID (N'mytest') IS NOT NULL DROP DATABASE mytest; GO CREATE DATABASE myt ... 
- SQL语句小总结
		无论是面试过程中,还是未来工作中,SQL都是一定会考到和用到的.所以,在此对之前看过的一些SQL知识点进行一下总结和记录,算是起到一个笔记本的作用.没有深入学习过SQL的和对SQL印象不太深的朋友可以 ... 
- SQL优化(子文章)(持续更新)
		-----> 总文章 入口 文章目录 [-----> 总文章 入口](https://blog.csdn.net/qq_37214567/article/details/90174445) ... 
- sql语句小记录
		测试过程中,需要去数据库中查询一些结果,比如验证码 常用的是查询 更新比较少用 删除一般不用 sql查询语句的嵌套用法,比较实用 比如in的用法:第一种:查询多个值时 SELECT "栏位名 ... 
- SQL题(子文章)(持续更新)
		-----> 总文章 入口 文章目录 [-----> 总文章 入口](https://blog.csdn.net/qq_37214567/article/details/90174445) ... 
随机推荐
- pymongo的常用操作
			环境:pymongo3.0.3,python3 以下是我整理的一些关于pymongo的操作,网上很多是用pymongo.Connecion()去连接数据库的,但是我这里连接一直提示没有这个包,如果大家 ... 
- java非常好用的读取文件的流的代码
			学过java的都知道java中有非常多的读取文件流的操作.这个要回到javase的io操作了.io流说实话,初学者学的肯定会非常混乱,那么多流,什么输入流,输出流,什么文件流,什么字节流,等等.我在这 ... 
- [leetcode]632. Smallest Range最小范围
			You have k lists of sorted integers in ascending order. Find the smallest range that includes at lea ... 
- 第三章 RNA测序
			第三章 RNA测序 RNA测序(RNA Sequencing,简称RNA-Seq,也被称为全转录物组鸟枪法测序Whole Transcriptome Shotgun Sequencing,简称WT ... 
- How to Install and Configure Bind 9 (DNS Server) on Ubuntu / Debian System
			by Pradeep Kumar · Published November 19, 2017 · Updated November 19, 2017 DNS or Domain Name System ... 
- C# 如何操作串口
			1.首先要引用 System.IO.Ports using System; using System.Collections.Generic; using System.ComponentModel ... 
- IIS 6 备忘
			用IIS7久了, 回到IIS6 总被搞混,所以记录下,以备忘记. 以下是转载和整合了他人的资源,原出处不详. IIS Web 服务器的权限设置有两个地方,一个是 NTFS 文件系统本身的权限设置, ... 
- 2018.10.22 bzoj4380: [POI2015]Myjnie(区间dp)
			传送门 区间dp好题. f[i][j][k]f[i][j][k]f[i][j][k]表示区间[i,j][i,j][i,j]最小值为kkk时的最大贡献. 然后可以枚举端点转移. 当时口胡到这儿就不会了. ... 
- Java动态代理探讨
			代理模式: 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.通过代理模式,可以延迟创建对象, ... 
- Windows10和CentOS7双系统安装的一些小技巧
			我个人是先安装好了win10系统,且win10是单独在一个120g的盘里:而centOS7则是安装在另一个500g的磁盘的其中的380g里: 这里要着重注意的是,500g里分成380g的盘不要在win ... 
