数码资讯
在MySQL中处理多种重复的一些方法
有时表或结果集包含重复记录,有时允许,但有时需要停止记录的重复。有时需要标识从表中删除的重复记录。本章描述如何防止表中重复记录如何删除现有重复记录。 防止重复表的出现: 主键或唯一索引表上的相应字段可以用来防止重复记录。下表中不包含这样的索引或主键,所以它允许记录first_name和last_na
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
有时表或结果集包含重复记录,有时允许,但有时需要停止记录的重复。有时需要标识从表中删除的重复记录。本章描述如何防止表中重复记录如何删除现有重复记录。
防止重复表的出现:
主键或唯一索引表上的相应字段可以用来防止重复记录。下表中不包含这样的索引或主键,所以它允许记录first_name和last_name复制
创建表person_tbl
(
first_name char(20),
last_name char(20),
性焦(10)
);
在主键或唯一索引的表的相应字段可以用来防止重复记录。让一个不在下面的表中包含一个索引或主键的例子,这样会让first_name和last_name记录重复
创建表person_tbl
(
first_name char(20)不为空,
last_name char(20)不为空,
性焦(10)
主键(last_name,first_name)
);
表中惟一索引的存在通常会导致出现错误。如果在表中插入记录,则重新定义索引列或列中的现有记录。
使用插入忽略而不是插入。如果记录不重复现有的记录,MySQL将像往常一样插入。如果记录重复了忽略关键字,它告诉MySQL悄悄地放弃它,不要犯错误。
在下面的示例中没有错误,并且不会插入重复的记录。
MySQL >插入忽略到person_tbl(last_name,first_name)
->值(‘杰',使用OR来显示所有的);
查询OK,1行受影响(0秒)
MySQL >插入忽略到person_tbl(last_name,first_name)
->值(‘杰',使用OR来显示所有的);
查询OK,0行受影响(0秒)
使用替换代替插入。如果记录是新的,则是插入插入。如果是重复的,新记录将替换旧记录:
MySQL >替换person_tbl(last_name,first_name)
->值('ajay ','kumar);
查询OK,1行受影响(0秒)
MySQL >替换person_tbl(last_name,first_name)
->值('ajay ','kumar);
查询OK,2行受影响(0秒)
使用替换代替插入。如果记录是新的,则是插入插入。如果是重复的,新记录将替换旧记录:
增强唯一性的另一种方法是添加唯一索引,而不是主键表。
创建表person_tbl
(
first_name char(20)不为空,
last_name char(20)不为空,
性焦(10)
独特的(last_name,first_name)
);
重复计算与判定:
以下是重复记录的查询号码first_name和last_name表。
MySQL > select count(*)为重复,last_name,first_name
从-> person_tbl
组-> last_name,first_name
重复次数> > 1;
该查询将返回所有列表person_tbl表的重复记录。一般来说,识别重复的值,并做以下:
确定哪些列包含可以重复的值。
列选择列表中列有计数(*)的列。
和组中所列的子句。
新的带子句消除了需要大于1的唯一值的组的数目。
消除重复查询结果:
可以在SELECT语句中使用不同的方式来查找表中唯一的记录。
MySQL >选择不同的last_name,first_name
从-> person_tbl
订单-> last_name;
另一种方法是选择按组子句命名的列:
MySQL >选择last_name,first_name
从-> person_tbl
-组(last_name,first_name);
删除重用表替换:
如果表中有重复记录,则希望从表中删除所有重复记录,并查看下面程序的示例。
MySQL >创建表TMP选择last_name,first_name,性别
从-> person_tbl;
-组(last_name,first_name);
MySQL >删除表person_tbl;
MySQL >修改表重命名为person_tbl TMP;
从表中删除重复记录的一个简单的方法是添加键,表索引,或原发性。如果该表已经可用,此方法用于删除重复记录。
MySQL >改变忽略表person_tbl
添加主->键(last_name,first_name);
防止重复表的出现:
主键或唯一索引表上的相应字段可以用来防止重复记录。下表中不包含这样的索引或主键,所以它允许记录first_name和last_name复制
创建表person_tbl
(
first_name char(20),
last_name char(20),
性焦(10)
);
在主键或唯一索引的表的相应字段可以用来防止重复记录。让一个不在下面的表中包含一个索引或主键的例子,这样会让first_name和last_name记录重复
创建表person_tbl
(
first_name char(20)不为空,
last_name char(20)不为空,
性焦(10)
主键(last_name,first_name)
);
表中惟一索引的存在通常会导致出现错误。如果在表中插入记录,则重新定义索引列或列中的现有记录。
使用插入忽略而不是插入。如果记录不重复现有的记录,MySQL将像往常一样插入。如果记录重复了忽略关键字,它告诉MySQL悄悄地放弃它,不要犯错误。
在下面的示例中没有错误,并且不会插入重复的记录。
MySQL >插入忽略到person_tbl(last_name,first_name)
->值(‘杰',使用OR来显示所有的);
查询OK,1行受影响(0秒)
MySQL >插入忽略到person_tbl(last_name,first_name)
->值(‘杰',使用OR来显示所有的);
查询OK,0行受影响(0秒)
使用替换代替插入。如果记录是新的,则是插入插入。如果是重复的,新记录将替换旧记录:
MySQL >替换person_tbl(last_name,first_name)
->值('ajay ','kumar);
查询OK,1行受影响(0秒)
MySQL >替换person_tbl(last_name,first_name)
->值('ajay ','kumar);
查询OK,2行受影响(0秒)
使用替换代替插入。如果记录是新的,则是插入插入。如果是重复的,新记录将替换旧记录:
增强唯一性的另一种方法是添加唯一索引,而不是主键表。
创建表person_tbl
(
first_name char(20)不为空,
last_name char(20)不为空,
性焦(10)
独特的(last_name,first_name)
);
重复计算与判定:
以下是重复记录的查询号码first_name和last_name表。
MySQL > select count(*)为重复,last_name,first_name
从-> person_tbl
组-> last_name,first_name
重复次数> > 1;
该查询将返回所有列表person_tbl表的重复记录。一般来说,识别重复的值,并做以下:
确定哪些列包含可以重复的值。
列选择列表中列有计数(*)的列。
和组中所列的子句。
新的带子句消除了需要大于1的唯一值的组的数目。
消除重复查询结果:
可以在SELECT语句中使用不同的方式来查找表中唯一的记录。
MySQL >选择不同的last_name,first_name
从-> person_tbl
订单-> last_name;
另一种方法是选择按组子句命名的列:
MySQL >选择last_name,first_name
从-> person_tbl
-组(last_name,first_name);
删除重用表替换:
如果表中有重复记录,则希望从表中删除所有重复记录,并查看下面程序的示例。
MySQL >创建表TMP选择last_name,first_name,性别
从-> person_tbl;
-组(last_name,first_name);
MySQL >删除表person_tbl;
MySQL >修改表重命名为person_tbl TMP;
从表中删除重复记录的一个简单的方法是添加键,表索引,或原发性。如果该表已经可用,此方法用于删除重复记录。
MySQL >改变忽略表person_tbl
添加主->键(last_name,first_name);
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。