其实,我们通过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;
新闻热点
疑难解答