随笔分类 -  MySQL

摘要:题目: 从题目可知:求活跃用户 ———— 至少连续登录5天的人 ———— 连续区间且长度大于等于5使用方法:自定义变量求次数,初始次数为0,当符合条件时,次数加1逻辑条件:id相同,前后一行时间间隔为1天【date_sub()函数】 根据以上可以得出 select id, @cnt:=if(@id= 阅读全文
posted @ 2020-08-17 11:24 littlebob 阅读(756) 评论(0) 推荐(0)
摘要:这道题的难点在于求差值,因为这道题比较特殊 假设只有这两种水果 那 select sale_date, sum(if(fruit='apples', 1, -1)*sold_num) as diff from `Sales` group by sale_date order by sale_date 阅读全文
posted @ 2020-08-14 09:12 littlebob 阅读(504) 评论(0) 推荐(0)
摘要:题目: 解题思路: 别人写的很好,所以不用自己重写一遍了 阅读全文
posted @ 2020-08-10 09:58 littlebob 阅读(177) 评论(0) 推荐(0)
摘要:a表,时间字段为create_time 查询过去一年的数据 select * from a where create_time between date_add(date(curdate()), interval -1 year) and date(curdate()); 过去一个月 select 阅读全文
posted @ 2020-08-08 09:58 littlebob 阅读(712) 评论(0) 推荐(0)
摘要:题目 解题思路 先看题目,再看结果从结果可以看出结果的前三列列为表students和subjects的交叉连接,也就是笛卡尔积而最后一列为每个学生参加每个学科的测试次数,也就是分组统计解题步骤1.求笛卡尔积 select * from `Students` as s1 cross join `Sub 阅读全文
posted @ 2020-08-07 10:56 littlebob 阅读(451) 评论(0) 推荐(0)
摘要:看完题目后,我一般先看结果的样子从结果可以看出,是按照成绩自定义分组自定义分组用到 group by case when所以先得出 select case when duration/60<5 then '[0-5>' when duration/60<10 then '[5-10>' when d 阅读全文
posted @ 2020-08-07 09:41 littlebob 阅读(344) 评论(0) 推荐(0)
摘要:简单函数CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END new_col_name -- 枚举 select t_name, case t_name when '张三' then '严肃' when '李四' then ' 阅读全文
posted @ 2020-08-04 09:03 littlebob 阅读(468) 评论(0) 推荐(0)
摘要:题目来自于leetcode 第一次看到时,第一个想法就是 使用排序和limit select Salary as SecondHighestSalary from Employee order by Salary desc limit 1 offset 1 但这个还是错误的,因为如果有一样的成绩呢, 阅读全文
posted @ 2020-08-03 13:55 littlebob 阅读(267) 评论(0) 推荐(0)
摘要:limit 2 限制结果为前2条记录 limit 2, 3 从第2行开始,查询3条记录 起始值为第0行 limit 2 offset 3 查询 2条记录,从第3行开始 起始值为第0行 阅读全文
posted @ 2020-08-03 13:37 littlebob 阅读(2921) 评论(0) 推荐(0)
摘要:count()函数是统计字段非空的记录数,如果字段为null,则不计入 count(if(字段表达式)true,null) 阅读全文
posted @ 2020-08-03 11:22 littlebob 阅读(1649) 评论(0) 推荐(0)
摘要:不等于:<> ,!=,~= ,^= 这四个符号据说都可以在oracle中表示不等于 但是试了之后发现<> ,!= ,^=是可以的,~=不行 需要注意的是,只有<>是标准的sql语法,可以移植 其他的都是oracle平台的特性,移植性较差 所以开发中,尽量使用<>表示不等于 阅读全文
posted @ 2020-07-22 09:22 littlebob 阅读(1695) 评论(0) 推荐(1)
摘要:编辑配置文件 vim /etc/my.cnf 在【mysqld】下添加skip-grant-tables,保存并退出 重启mysql服务: service mysqld restart 修改root用户密码 重启后,输入mysql直接进入MySQL命令行 update mysql.user set 阅读全文
posted @ 2020-06-20 11:21 littlebob 阅读(747) 评论(0) 推荐(0)
摘要:1、查询当天的数据 select * from 表名 where TO_DAYS(时间字段)=TO_DAYS(NOW()); 2、查询当周的数据 select * from 表名 where YEARWEEK(DATE_FORMAT(时间字段,'%Y-%m-%d'))=YEARWEEK(NOW()) 阅读全文
posted @ 2020-05-19 13:23 littlebob 阅读(2044) 评论(0) 推荐(1)
摘要:MySQL 获得当前日期时间 函数 获得当前日期+时间(date + time)函数:now() mysql> select now(); + + | now() | + + | 2008-08-08 22:20:46 | + + 获得当前日期+时间(date + time)函数:sysdate() 阅读全文
posted @ 2020-05-12 10:47 littlebob 阅读(2125) 评论(0) 推荐(0)