文档章节

MySQL不插入重复数据与删除重复数据

白志华
 白志华
发布于 2015/10/18 10:57
字数 193
阅读 8
收藏 0
点赞 0
评论 0

今天写个小程序需要用到mysql,需求就是要求插入数据,但该数据不能已存在于表中,否则就不插入。

比如我需要插入question="aaa",correctAnswer="bbb"的数据,代码如下:

1
2
3
4
5
6
7
8
INSERT  INTO  questions
(question,correctAnswer)
SELECT  'aaa' , 'bbb'  FROM  dual
where  not  exists(
SELECT  FROM  questions
where  question= 'aaa'
and  correctAnswer= 'bbb'
)
1
<span class= "span4br" ></span>

其中"dual"为虚表,用于不提供实际表名查询数据。

当然,如果已经插入了若干条重复数据,则可以这么删除:

1
2
3
4
5
6
7
8
9
10
DELETE  FROM  a USING questions  AS  a,
(
SELECT  *
FROM  questions
GROUP  BY  question, correctAnswer
HAVING  COUNT ( * ) >1
AS  b
WHERE  a.question = b.question
AND  a.correctAnswer = b.correctAnswer
AND  a.questionId > b.questionId
1
<span class= "span4br" ></span>


© 著作权归作者所有

共有 人打赏支持
白志华
粉丝 29
博文 260
码字总数 57524
作品 0
长沙
程序员
MySQL专题10之MySQL序列使用、MySQL处理重复数据、MySQL以及SQL的注入

1、MySQL序列使用 - MySQL序列是一组整数:1,2,3...,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 - 使用AUTOINCREMENT:MySQL...

极客微信条 ⋅ 2017/11/21 ⋅ 0

mysql常用语句

1.复制表结构和数据,但是不复制索引和外键: create table a select * from b; 2.复制表结构和索引和外键,不复制数据: 3.只复制数据: 4.移动表到另一个库 5.删除重复记录 6.重命名数据库...

芒果龙 ⋅ 2011/12/28 ⋅ 0

MySql避免重复插入记录的几种方法

本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,有需要的朋友可以参考一下 方案一:使用ignore关键字 如果是用主键p...

凯文加内特 ⋅ 2016/01/09 ⋅ 0

sql技巧总结

1,删除数据库中重复的用户名 group by 取出最小的id,然后从表中删除重复数据; group by name [ having count(id) >1 ] 2,备份数据非方式 新单位的备份数据方式,我觉得很蛋疼,为什么不用m...

skanda ⋅ 2015/07/14 ⋅ 0

MySql避免重复插入记录的几种方法

本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,有需要的朋友可以参考一下 方案一:使用ignore关键字 如果是用主键p...

messi_10 ⋅ 2016/01/11 ⋅ 0

「mysql优化专题」90%程序员都会忽略的增删改优化(2)

前文一篇「mysql优化专题」这大概是一篇最好的mysql优化入门文章(1)让大家知道msql优化,究竟在优化什么,本篇为mysql优化专题的第二篇,主要先从增删改进行优化。大家可以收藏关注一波,若...

java进阶架构师 ⋅ 2017/11/22 ⋅ 0

mysql存在则更新,不存在则插入

INSERT INTO ON DUPLICATE KEY UPDATE 与 REPLACE INTO,两个命令可以处理重复键值问题,在实际上它之间有什么区别呢? 前提条件是这个表必须有一个唯一索引或主键。 unique 1、REPLACE发现重...

LCZ777 ⋅ 2015/09/22 ⋅ 0

MySQL删除表中重复数据SQL语句

我们经常在创建数据的时候会添加数据后,,发现有些字段我们应该用唯一的数据。 所以删除多余的数据。1、可以重新清空,重新插入。2、删除多余的数据。 一、查询重复的数据 以一个字段为参考...

breakawaylove ⋅ 2014/10/23 ⋅ 2

mysql初学笔记1(来自runoob.com)

group by 分组使用 WITH ROLLUP WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。 例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数: mysql>...

houss2012 ⋅ 2017/11/08 ⋅ 0

数据库数据恢复实验过程

进入数据库操作,难免会出现一些误操作。这时就需要我们对数据进行恢复。一下介绍一下如何将表中的内容删除后进行恢复的过程。 首先我们模拟一下实验环境: 将数据库安装好之后进入到/etc/my...

十分了得 ⋅ 2017/04/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 24分钟前 ⋅ 0

Spring源码解析(六)——实例创建(上)

前言 经过前期所有的准备工作,Spring已经获取到需要创建实例的 beanName 和对应创建所需要信息 BeanDefinition,接下来就是实例创建的过程,由于该过程涉及到大量源码,所以将分为多个章节进...

MarvelCode ⋅ 44分钟前 ⋅ 0

a href="#"

<a href="#">是链接到本页,因为你有的时候需要有个链接的样式,但是又不希望他跳转,这样写,你可以把这个页面去试试

颖伙虫 ⋅ 51分钟前 ⋅ 0

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 51分钟前 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 59分钟前 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 今天 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 今天 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

准备磁盘分区 fdisk /dev/sdb n 创建三个新分区,分别1G t 改变分区类型为8e 准备物理卷 pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay/pvs 列出当前的物理卷 pvremo...

Linux_老吴 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部