Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL의 테이블에서 중복 열을 삭제하는 데 도움이 필요하십니까?

<시간/>

중복 열을 삭제하려면 INNER JOIN과 함께 DELETE를 사용합니다. 다음은 구문입니다 -

delete tbl1 from yourTableName anyAliasName1
inner join yourTableName anyAliasName2
where
yourCondition1
and
yourCondition2

테이블을 만들어 봅시다 -

mysql> create table demo14
−> (
−> id int not null auto_increment primary key,
−> name varchar(30)
−> );
Query OK, 0 rows affected (1.89 sec)

insert 명령을 사용하여 일부 레코드를 테이블에 삽입하십시오 -

mysql> insert into demo14(name) values('John');
Query OK, 1 row affected (0.14 sec)

mysql> insert into demo14(name) values('David');
Query OK, 1 row affected (0.18 sec)

mysql> insert into demo14(name) values('David');
Query OK, 1 row affected (0.09 sec)

mysql> insert into demo14(name) values('Bob');
Query OK, 1 row affected (0.15 sec)

mysql> insert into demo14(name) values('John');
Query OK, 1 row affected (0.45 sec)

mysql> insert into demo14(name) values('Carol');
Query OK, 1 row affected (0.16 sec)

select 문을 사용하여 테이블의 레코드 표시 -

mysql> select *from demo14;

이것은 다음과 같은 출력을 생성합니다 -

+----+-------+
| id | name  |
+----+-------+
|  1 | John  |
|  2 | David |
|  3 | David |
|  4 | Bob   |
|  5 | John  |
|  6 | Carol |
+----+-------+
6 rows in set (0.00 sec)

다음은 테이블에서 중복 열을 삭제하는 쿼리입니다 -

mysql> delete tbl1 from demo14 tbl1
−> inner join demo14 tbl2
−> where
−> tbl1.id < tbl2.id and
−> tbl1.name = tbl2.name
−> ;
Query OK, 2 rows affected (0.20 sec)

select 문을 사용하여 테이블의 레코드 표시 -

mysql> select *from demo14;

이것은 다음과 같은 출력을 생성합니다 -

+----+-------+
| id | name  |
+----+-------+
|  3 | David |
|  4 | Bob   |
|  5 | John  |
|  6 | Carol |
+----+-------+
4 rows in set (0.00 sec)