首页 > 数据库 > MySQL > 正文

mysql临时表

2024-07-24 12:59:21
字体:
来源:转载
供稿:网友
1、 在我们的项目中,往往可能会有这么一个需求:比如老师给学生选课,前台页面老师勾选了n个学生,给他们选语文课,这时有的学生已经选过语文课了,我们向后台传递这些学生的信息和语文课信息。一般初学者,会在后端业务层新增是判断勾选的学生是否选了语文课,如果选择了,则不去新增。

其实,我们通过MySQL的语句关键词ignore,则不需要业务层判断,举例说明如下:

首先,我们有个user表,字段有id、name,此表已有数据,如下图:

当我们使用下面sql语句

结果应为重复数据,报错了。

那我们看下面sql语句,结果如下:

结论:当我们为了避免重复是,sql中可以使用ingnre关键词,来达到简化业务层代码的目的

2、 关于临时表,借用别人的例子,如下:

给定一个user表,包含id和uid两列,其中uid列可能有重复,要求找出重复的记录,并删掉多余的记录,使得对于uid重复的记录只保留id最小的记录

drop table if EXISTS `tmp`;create table tmp as select min(id) as id,uid from user GROUP by uid HAVING count(uid)>1;delete from user where id not in (select id from tmp)  and uid in(select uid from tmp); drop table tmp;commit;


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表