mysql利用唯一索引去重

在生产环境中,有时候我们会遇到这样的问题,就是去掉数据库中2列值相同的数据,并且留下一条语句,解决这个问题可以利用唯一联合索引

创建测试表

CREATE TABLE `test03` (
`id` INT(11) ,
`uid` INT(11) DEFAULT NULL);

INSERT INTO test03(id,uid) VALUES (1,1),(1,2),(1,1),(1,2),(1,1);

select * from test03;

id    uid

1    1

1    2

1    1

1    2

1    1

创建联合唯一索引

ALTER IGNORE TABLE test03 ADD UNIQUE INDEX  id_uid(id,uid);

select * from test03;

id    uid

1    1

1    2

这样就能完美的去掉2列重复的数据了

mysql利用唯一索引去重

时间: 2024-10-13 08:01:23

mysql利用唯一索引去重的相关文章

MySQL 创建唯一索引忽略对已经重复数据的检查

MySQL 创建唯一索引忽略对已经重复数据的检查 在创建唯一索引的基础上加上关键字"IGNORE "即可. # 重复数据 mysql> select aid,count(aid) as total ,email,tel_no,account_type,exten,passwd from fudao_admin group by user_name having total> 1; +-------+-------+--------------------------+---

mysql的唯一索引UNIQUE

创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复.唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值.如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE,把它定义为一个唯一索引. 创建唯一索的方法 操作表 CREATE TABLE `wb_blog` ( `id` smallint(8) unsigned NOT NULL, `catid` smallint(5) unsigned NOT NULL DEFAULT

mysql删除唯一索引

在项目中用spring data jpa指定了一个唯一索引: @Entity @Table(name = "t_product") @Getter @Setter @AllArgsConstructor @NoArgsConstructor public class ProductItem { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // 订单Id @Column(nullable

Mysql: 利用强制索引去掉重数据

数据库版本: [[email protected]mysqltest ~]# mysql -u root -p123456 Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 389805 Server version: 5.1.73-community MySQL Community Server (GPL) Copyright (c) 2000, 2013, Oracle

mysql,sql server,oracle 唯一索引字段是否允许出现多个 null 值?

最近一个项目,涉及到sql server 2008,因为业务需求,希望建立一个唯一索引,但是发现在sql server中,唯一索引字段不能出现多个null值,下面是报错信息: CREATE UNIQUE NONCLUSTERED INDEX weixin_openid_ui ON Users(weixin_openid); 因为发现对象名称 'dbo.Users' 和索引名称 'weixin_openid_ui' 有重复的键,所以 CREATE UNIQUE INDEX 语句终止.重复的键值为

sql server与mysql 中创建唯一索引

/*筛选索引 SQL SERVER 2008 测试*//* 应用:用户表,通过ID可以登录, 如果有电话号码也可以登录,但此时必须保证电话号码唯一.*/--1,创建测试表CREATE TABLE T( ID VARCHAR(20) NOT NULL PRIMARY KEY, MOBILE VARCHAR(20)NULL) --2,创建索引 唯一,非聚集索引(并添加筛选条件)CREATE UNIQUE NONCLUSTERED INDEX [IDX_MOBILE] ON [dbo].[T] ( [

mysql 优化策略(如何利用好索引)

命名规则:表名_字段名1.需要加索引的字段,要在where条件中2.数据量少的字段不需要加索引3.如果where条件中是OR关系,加索引不起作用4.符合最左原则 https://segmentfault.com/q/1010000003984016/a-1020000003984281 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c

mysql 5.6 read-committed隔离级别下并发插入唯一索引导致死锁一例

今天,某个环境又发生了死锁,如下: *** (1) TRANSACTION:TRANSACTION 735307073, ACTIVE 0 sec insertingmysql tables in use 1, locked 1LOCK WAIT 6 lock struct(s), heap size 1184, 3 row lock(s), undo log entries 1MySQL thread id 2754, OS thread handle 0x7f29cd89a700, quer

mysql中如何查看和删除唯一索引

mysql中如何查看和删除唯一索引. 查看唯一索引: show index from mytable;//mytable 是表名 查询结果如下: 查询到唯一索引后,如何删除唯一索引呢,使用如下命令: alter table mytable drop index mdl_tag_use_ix;//mdl_tag_use_ix是上表查出的索引名,key_name mysql中如何查看和删除唯一索引,布布扣,bubuko.com