MySQL
洁娃
这个作者很懒,什么都没留下…
展开
-
MySQL连接查询(left/right join)
关于各种连接的直观总结先写一段语法select table1.var1 table2.var2 from table1 inner join table2 on table1.id=table2.id可以在/*inner join*/处替换各种连接方式,例如:left join、right joinleft join:包含左表所有行,右表出现未匹配上左表的行则为nullrigh...原创 2019-04-10 19:32:42 · 388 阅读 · 0 评论 -
上升的温度
LeetCode 197.上升的温度1 针对此题,我最开始的思路是建立两个表,id从1-3和id从2-4的两个表,再比较其大小即可,但是如果表的时间是乱序排列,这种方法就不适用了。2 我将思路转换为筛选日期相隔一天的对应数据进行比较。此后发现这个思路比较能行。难点在于date类型的日期并不能之间进行加减,于是百度了【MySQL日期加减】,出现了很多解决方法,这些方案我也做了一个小总结(日期加减...原创 2019-04-15 11:48:35 · 169 阅读 · 0 评论 -
MySQL日期的加减
简单粗暴法to_days()where to_days(w1.RecordDate)-to_days(w2.RecordDate)=1增加法date_addwhere date_add(w2.RecordDate,interval 1 day)=w1.RecordDatewhere date_add(w1.RecordDate,interval -1 day)=w2.RecordDat...原创 2019-04-15 11:37:11 · 167 阅读 · 0 评论 -
MySQL计数+去重
596. 超过5名学生的课下面是我写的版本这个版本的思路是一步步修改得到的1 我按照课程进行分组并计数2 运行出错发现如果记录出现重复项则结果有误,因此要进行去重。我去重的方式为删除原表中的重复记录select distinct * from coursesselect class from (select class,count(class) as class_count from (...原创 2019-04-17 14:07:26 · 5187 阅读 · 0 评论 -
MySQL的update套用条件语句
在做627.交换工资时,发现需要将update与条件语句结合使用实际书上只说了范例写法,即满足某一条件时,更新其它列update salary set sex=case when sex='f' then 'm' else 'f' end;update salary set sex=if( sex='f','m' ,'f');让我困惑的地方在于我并不能写出这种我没见过的代码,罢了,...原创 2019-04-17 11:05:40 · 1942 阅读 · 0 评论 -
180.连续出现的数字
开始理解错误,弄成出现三次以上的数字以下为出现三次以上的数字代码select num as ConsecutiveNums from (select num ,count(num) as count_num from logs_v group by num) as t where t.count_num>3题目需要的是连续出现三次的数字参考答案中的某一种思路,十分简洁,即创建三...原创 2019-04-16 10:49:12 · 115 阅读 · 0 评论 -
178.分数排名
Heidi SQL运行结果正确思路为先select成不重复并带排名的表t,再与原表scores进行连接其中为生成rank,搜索百度词条【MySQL生成序列号】,参考链接set @rank=0;select t.score, t.rank from (select @rank:=@rank+1 as rank,f.score from (select distinct score from ...原创 2019-04-15 23:36:34 · 186 阅读 · 0 评论 -
部门工资最高的员工
思路1 此题分为两个步骤,一是寻找每组内的最高薪水,而是按照同指标对两表进行连接2 此题借鉴了我之前的一个博文select套娃以下为我的代码,在Heidi SQL中运行成功,但是在LeetCode中出现问题select department.name as deparment , employee.name as employee, salary from employee,de...原创 2019-04-15 21:27:10 · 334 阅读 · 0 评论 -
MySQL的case条件语句
626.换座位代码来源(力扣评论)SELECT (CASE WHEN MOD(id,2) = 1 AND id = (SELECT COUNT(*) FROM seat) THEN id WHEN MOD(id,2) = 1 THEN id+1 ElSE id-1 END) AS id, student...原创 2019-04-15 16:28:57 · 470 阅读 · 0 评论 -
/* SQL错误(1067):Invalid default value for 'AddressId' */
使用Heidi SQL设置主键时出现/* SQL错误(1067):Invalid default value for ‘AddressId’ */主键设置操作为:在要设置主键的行右键,点击【创建新索引】→【PRIMARY】需要将默认处设置为【无默认值】...原创 2019-04-08 17:44:06 · 4551 阅读 · 0 评论 -
MySQL删除重复项——delete+group by
在【领扣】中遇到删除重复电子邮箱的题,在HeidiSQL中运行通过,但是leecode不能通过以下为Heidi SQL中通过的代码SELECT Id,Email FROM PersonGROUP BY EmailORDER BY Id;原因在于此题为删除,需要使用到delete,而不是筛选。下面附上一个容易看懂的范例。delete from Personwhere Id not i...原创 2019-04-08 10:59:07 · 3612 阅读 · 0 评论 -
MySQL判断奇数
mysql中不等于的符号为<>或!=num % 2 =1; num为奇数num % 2 =0; num为偶数620.有趣的电影select * from cinema where description <> 'boring' and id % 2 =1 order by rating desc...原创 2019-04-15 12:04:03 · 2569 阅读 · 1 评论