一些常用的mysql语句
- 编程技术
- 时间:2018年12月27日 13:33
- 933人已阅读
简介个人博客,用来做什么?我刚开始就把它当做一个我吐槽心情的地方,也就相当于一个网络记事本,写上一些关于自己生活工作中的小情小事,也会放上一些照片,音乐。每天工作回家后就能访问自己的网站,一边听着音乐,一边写写文章,回想之前踩过的坑。
时间相关
获取当前日期
SELECT NOW(),CURDATE(),CURTIME();
获取前一天
SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY);
获取后一天
SELECT DATE_SUB(CURDATE(),INTERVAL -1 DAY);
年份差
SELECT TIMESTAMPDIFF(YEAR,'2017-05-01', DATE_FORMAT(now(), '%Y-%m-%d'))
月份差
SELECT TIMESTAMPDIFF(MONTH,'2017-05-01', DATE_FORMAT(now(), '%Y-%m-%d'))
天数差
SELECT datediff(DATE_FORMAT(now(), '%Y-%m-%d'),DATE_FORMAT('2018-09-10','%Y-%m-%d'))
获取本月最后一天
select last_day(curdate());
获取本月第一天
select date_add(curdate(), interval - day(curdate()) + 1 day);
获取当前时间与一个月之间的天数
select datediff(curdate(), date_sub(curdate(), interval 1 month));
身份证相关
通过身份证号码判断性别,例子为18位身份证的
select if (MOD(SUBSTRING(idno,17,1),2),'男','女') AS 性别 from sometable;
查询相关
多表查询,有外键关联
select a.name,b.phone from tableA a inner join tableB b on a.id = b.aid;
查询重复记录,本例子为查询公司内有多少人是重名的,对应的姓名是什么
select name,count(name) from company group by name having count(name) > 1
数据相关
把某张表的一部分数据插入到其他表,常用于做导出数据处理
insert into tableA (param1,param2) select `name`,phone,address from tableB where ...