记录一些常用的sql语句

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

参考:https://www.jb51.net/article/32277.htm

猜你喜欢

转载自blog.csdn.net/VABTC/article/details/109646502