MySQL
keyboard_arrow_down 295 guides
chevron_leftRow Cookbooks
check_circle
Mark as learned thumb_up
0
thumb_down
0
chat_bubble_outline
0
Comment auto_stories Bi-column layout
settings
Removing duplicate rows in MySQL
schedule Aug 10, 2023
Last updated local_offer
Tags MySQL
tocTable of Contents
expand_more Master the mathematics behind data science with 100+ top-tier guides
Start your free 7-days trial now!
Start your free 7-days trial now!
We can remove duplicate rows from a table in MySQL using the below general syntax:
DELETE n1 FROM table_name n1, table_name n2 WHERE n1.id_column > n2.id_column AND n1.column_name = n2.column_name
Example
Consider the following table about whether students hold a drivers license:
student_id | full_name | age | has_license |
---|---|---|---|
1 | Sky Towner | 17 | 0 |
2 | Ben Davis | 19 | 1 |
3 | Travis Apple | 18 | 0 |
4 | Arthur David | 16 | 0 |
5 | Benjamin Town | 17 | 1 |
The above sample table can be created using the code here.
To remove all rows with duplicate has_license
value and keep the record with lowest student_id
:
DELETE n1 FROM drivers_license n1, drivers_license n2WHERE n1.student_id > n2.student_id AND n1.has_license = n2.has_license;
SELECT * FROM drivers_license;
+------------+------------+------+-------------+| student_id | full_name | age | has_license |+------------+------------+------+-------------+| 1 | Sky Towner | 17 | 0 || 2 | Ben Davis | 19 | 1 |+------------+------------+------+-------------+
Within the drivers_license
table we search for records which have the same value of has_license
(n1.has_license = n2.has_license
) from where we proceed to delete the record with the higher student_id
(n1.student_id > n2.student_id
).
Published by Arthur Yanagisawa
Edited by 0 others
Did you find this page useful?
thumb_up
thumb_down
Comment
Citation
Ask a question or leave a feedback...
thumb_up
0
thumb_down
0
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!