add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE babynames
(`id` int, `category_id` int, `baby_name` varchar(11), `url_role` varchar(11))
;

INSERT INTO babynames
(`id`, `category_id`, `baby_name`, `url_role`)
VALUES
(1, 6, 'karthik', 'karthik'),
(2, 7, 'kalaivanan', 'kalaivanan'),
(3, 4, 'arun', 'arun'),
(4, 6, 'vijayakumar', 'vijayakumar'),
(5, 6, 'karthik', 'karthik'),
(6, 6, 'karthik', 'karthik'),
(7, 4, 'karthik', 'karthik'),
(9, 6, 'vijayakumar', 'vijayakumar'),
(8, 4, 'karthik', 'karthik')
SELECT * FROM babynames
id category_id baby_name url_role
1 6 karthik karthik
2 7 kalaivanan kalaivanan
3 4 arun arun
4 6 vijayakumar vijayakumar
5 6 karthik karthik
6 6 karthik karthik
7 4 karthik karthik
9 6 vijayakumar vijayakumar
8 4 karthik karthik
DELETE b
FROM babynames b
WHERE EXISTS (SELECT *
FROM (SELECT * FROM babynames) b1
WHERE b1.category_id = b.category_id
AND b1.baby_name = b.baby_name
AND b1.id < b.id)
SELECT * FROM babynames
id category_id baby_name url_role
1 6 karthik karthik
2 7 kalaivanan kalaivanan
3 4 arun arun
4 6 vijayakumar vijayakumar
7 4 karthik karthik
DELETE b
FROM babynames b
WHERE EXISTS (SELECT *
FROM babynames b1
WHERE b1.category_id = b.category_id
AND b1.baby_name = b.baby_name
AND b1.id < b.id)
You can't specify target table 'b' for update in FROM clause