题解 | #SQL 7.删除记录(二)#

删除记录(二)

http://www.nowcoder.com/practice/964c9f7fffbb4ab18b507cfed4111b4a

明确考点:

删除记录的方式汇总:

  • 根据条件删除:DELETE FROM tb_name [WHERE options] [ [ ORDER BY fields ] LIMIT n ]
  • 全部删除(表清空,包含自增计数器重置):TRUNCATE tb_name

时间差:

  • TIMESTAMPDIFF(interval, time_start, time_end)可计算time_start-time_end的时间差,单位以指定的interval为准,常用可选:
    • SECOND 秒
    • MINUTE 分钟(返回秒数差除以60的整数部分)
    • HOUR 小时(返回秒数差除以3600的整数部分)
    • DAY 天数(返回秒数差除以3600*24的整数部分)
    • MONTH 月数
    • YEAR 年数

细节剖析:

  • 未完成作答的记录;
  • 或作答时间小于5分钟整的记录;
  • 开始作答时间最早的3条记录;

思路实现:

  • 本题采用第一种删除方式,满足条件1或条件2就删除,但只删除3条记录:
DELETE FROM exam_record
WHERE submit_time IS NULL
    OR TIMESTAMPDIFF(MINUTE, start_time, submit_time) < 5
ORDER BY start_time
LIMIT 3;
SQL进阶 文章被收录于专栏

SQL进阶step by step

全部评论
写的一模一样为啥答案不对……
1 回复 分享
发布于 2022-03-17 23:56
为什么是submit_time is null而不是start_time is null?
点赞 回复 分享
发布于 2022-08-05 15:43
为什么limit 0,3 会报错呢
2 回复 分享
发布于 2021-12-09 15:38
delete from exam_record where submit_time is null or TIMESTAMPDIFF(second,start_time,submit_time)<300 order by start_time limit 3
点赞 回复 分享
发布于 2024-02-24 00:47 河北
为什么不可以用submit_time - start_time
点赞 回复 分享
发布于 2022-12-16 22:04 湖南
DELETE FROM exam_record WHERE submit_time = null OR TIMESTAMPDIFF(minute,start_time,submit_time) <5 ORDER BY start_time limit 3;
点赞 回复 分享
发布于 2022-03-17 23:56
大神好厉害
点赞 回复 分享
发布于 2022-03-03 22:27
大佬 is 后面的字段为啥不能加单引号?
点赞 回复 分享
发布于 2022-02-03 13:31
少一个开始时间最早
点赞 回复 分享
发布于 2021-11-23 15:47

相关推荐

05-26 09:07
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
评论
47
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务