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

今天写个小程序需要用到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>

时间: 2024-09-25 07:17:51

MySQL不插入重复数据与删除重复数据的相关文章

Mysql中如何查找并删除重复数据

考试系统中做了一个用户导入试题功能,导致用户导入了很多重复的试题,我需要查询及删除一下重复的记录,于是有了这篇文章. (一)单个字段 1.查找表中多余的重复记录,根据(question_title)字段来判断  代码如下 复制代码 select * from questions where question_title in (select question_title from people group by question_title having count(question_title

MySQL中删除重复数据的简单方法_Mysql

MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考. 第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表 create table tmp3 as select min(id) as col1 from data_content

MySQL取出表中排序数据且不重复 删除重复数据(1/2)

今日做一个功能需求,从表中排序取出前十个且数据不一致的数据,如下列a表中的值有以下数据:  代码如下 复制代码 mysql> select * from a; +----+----------+ | id | user | +----+----------+ | 1 | zhangsan | | 2 | lisi | | 3 | wangwu | | 4 | zhangsan | | 5 | zhaosi | | 6 | wangwu | | 7 | lisi | | 8 | lisi | | 

mysql查找删除重复数据并只保留一条实例详解

有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 50 1240 Abraham Lincoln High School 70 35 1241 Acalanes High School 120 89 1242 Academy Of The Canyons 30 30 1243 Agoura High School 89 40 1244 Agour

sql 删除重复数据

sql 删除重复数据 本文章提供一款mysql删除重复数据,就是数据表中存在二条以上的重复数据,删除编号最小的一条信息. delete `borough_name` as a from fke_borough as a, ( select *,min(id) from fke_borough group by `borough_name` having count(1) > 1 ) as b  where a.`borough_name` = b.`borough_name` and a.id

select-Mysql删除重复数据只保留一条

问题描述 Mysql删除重复数据只保留一条 Mysql删除重复数据只保留一条,我的sql这样的 DELETE from t_patient WHERE pa_iid IN (select pa_iid from t_patient group by pa_vname having count(pa_vname)>1) 但是报错了: [Err] 1093 - You can't specify target table 't_patient' for update in FROM clause 求

mysql-MySQL 删除重复数据(两个字段)

问题描述 MySQL 删除重复数据(两个字段) 表full中userID和movieID两个字段确定一条唯一的数据. 现在表中有少量重复数据和大量非重复数据. 重复数据中,preference列和timestamp列不为空的这些,需要保留:preference列和timestamp列为空的这些需要删除,应该怎么办? 初学者,希望答案详细:) 感激不尽 +------------+---------+------+-----+---------+-------+ | Field | Type |

SQL去除重复删除重复数据(千万级数据量)

MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考. 第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表  代码如下 复制代码 create table tmp3 as select min(id) as col1 from d

Excel中删除重复数据

请仔细阅读并修改相关数据. 1.打开有重复数据的EXCEL 2.Alt+F11 打开宏编辑器 3.左边双击:ThisWorkBook 4.贴入以下代码并运行即可: Sub 删除重复数据() '删除col列的重复数据 '本例是删除标题为sheet1的EXCEL表中A列(从A2单元格开始)的重复数据 Application.ScreenUpdating = False '可根据实际情况修改下面三行的结尾值 Dim sheetsCaption As String: sheetsCaption = "S