En un articulo anterior habia comentado como elimiar resultados duplicados de una tabla a traves de crear un tabla con distinc, el problema de esto es que la nueva tabla no recibe las claves primarias ni autonomericas, por lo que si solo lo tienes que hacer una vez ok, pero como es mi caso que se mente varias veces videos duplicados pues es un follon asi que se me ha ocurrido lo siguiente.
Me creo una vista sacando los videos y sumando el video_id, para saber quien se esta repitiendo.
DEFINER VIEW `Repetidos` AS select count(.`video_id`) AS `suma`,id from `tabla_videos` group by video_id;
Ahora sobre esa vista creo otra que saque los que suma sea mayor que 1 y que esten agrupados por video_id, de esta forma tendre los que estan repetidos.
DEFINER VIEW `VerDuplicados` AS select id fromtabla_videos where video_id in (
select video_id from Repetidos where suma > 1) group by video_id;
Y por ultimo solo queda elimiar esos repetidos con
delete from tabla_videos where id in (select id from Repetidos where suma > 1);
Alguna idea mejor 🙂