1、关于常用时间的查询
1.1、查询当前这周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
1.2、查询上周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;
1.3、查询当前月份的数据
1)select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
2)select suggest_id, count(id) as cnt from zhfw_suggest_rank
WHERE read_time >= (DATE_FORMAT(CURRENT_DATE(),'%m')) <= (DATE_FORMAT(CURRENT_DATE(),'%m'))
1.4、查询距离当前现在6个月的数据
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();
1.5、查询上个月的数据
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')
select * from `user` where DATE_FORMAT(pudate,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') ;
select * from user where WEEKOFYEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = WEEKOFYEAR(now())
select * from user where MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now())
select * from [user] where YEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = YEAR(now()) and MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now())
select * from [user] where pudate between 上月最后一天 and 下月第一天
1.6、查询当天、昨天、前天的数据:
SELECT * FROM zhfw_service_theme WHERE TO_DAYS(created_time) = TO_DAYS(NOW())
SELECT count(*) FROM `t_view` WHERE DATEDIFF(now(),create_time) = 0
SELECT count(*) FROM `t_view` WHERE DATEDIFF(now(),create_time) = 1
SELECT count(*) FROM `t_view` WHERE DATEDIFF(now(),create_time) = 2
2、多条件查询
多条件查询比较简单,即将相应的条件以添加AND的形式加在后面,如:
SELECT * FROM Employee
WHERE FNumber BETWEEN 'DEV001' AND 'DEV008'
AND FName LIKE '%J%'
AND FSalary BETWEEN 3000 AND 6000
3、给查询结果增添行号
SELECT @ROWNO := @ROWNO + 1 AS ROWNO, T.*
FROM (SELECT T.ARTICLE_TITLE, T1. NAME, T.ARTICLE_CREATEDATE
FROM T_ARTICLE T
LEFT JOIN T_ARTICLE_TYPE T1
ON T.TYPEID = T1. NAME
WHERE T.ARTICLE_TITLE LIKE '%博士%'
ORDER BY ARTICLE_CREATEDATE DESC) T,
(SELECT @ROWNO := 0) T3
ORDER BY ROWNO
4、从第N条记录开始查询M条数据
select * from tablename limit N,M
//查询前N行记录
-- 方法一
select * from table1 limit 0,n;
-- 方法二
select * from table1 limit n;
//查询后N行记录
-- 倒序排序,取前n行 id为自增形式
select * from table1 order by id desc dlimit n;
//查询一条记录($id)的下一条记录
select * from table1 where id>$id order by id asc dlimit 1
//查询一条记录($id)的上一条记录
select * from table1 where id<$id order by id desc dlimit 1
5、concat方法
where title like concat('%',#{search.content},'%')
5、易错sql语句
1)order by可以外接两条参数。例: order by 参数1 desc,参数2 desc