题解 | #插入记录(二)#

插入记录(二)

https://www.nowcoder.com/practice/9681abf28745468c8adacb3b029a18ce

insert into exam_record_before_2021(uid,exam_id,start_time,submit_time,score)
select uid,exam_id,start_time,submit_time,score
from exam_record
where year(submit_time) < 2021

插入记录的方式汇总:

普通插入(全字段):INSERT INTO table_name VALUES (value1, value2, ...)

普通插入(限定字段):INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)

多条一次性插入:INSERT INTO table_name (column1, column2, ...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...

从另一个表导入:INSERT INTO table_name SELECT * FROM table_name2 [WHERE key=value]

细节剖析:

新表exam_record_before_2021已创建好;

第一列为自增主键列,不能直接复制过去;

只复制2021年之前的记录;

只复制已完成了的试题作答纪录;

思路实现:

本题可采用第四种插入方式,需根据细节剖析的点做稍微改动,改为限定字段插入,即只插入除自增id列以外的列:

注意上面的WHERE条件简化了细节剖析里的后两个条件,用submit_time来判断可以隐含的保证已完成这个条件。如果用start_time判断可能会出错(如下代码),比如20201231晚上开始做,20210101凌晨完成,分开来筛选结果会不对

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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