Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/06/2014, 03:38
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Borrar registros repetidos según una condición

No es necesario hacerlo todo con programación. Con dos consultas te bastará, como te sugiere gnzsoloyo (con una no, pero...). Probablemente también con un proceso almacenado.

En la primera obtienes los colores repetidos y con 2 en el segundo campo. Entiendo que solo hay números 1 y 2 en flag

Código MySQL:
Ver original
  1. SELECT color FROM tutabla GROUP BY color HAVING COUNT(*) >1
con programación formo una cadena con esos colores repetidos, de la siguiente manera, por poner un ejemplo 'azul', 'rojo', 'amarillo' y la cargo en una variable que puedo llamar colorrepetido2 (eso con programación) .

luego el resultado de esa consulta, que son los colores que se repiten los incluyo en otra consulta de borrado
Código MySQL:
Ver original
  1. DELETE FROM tutabla WHERE flag = 2 AND color IN (@colorrepetido2)
Haz alguna prueba. Sin embargo, tal vez no te valdría si las posibilidades son más. Por ejemplo, que haya una bandera 2 y otra 3 para un mismo color y en ese caso no quisieras borrarlo.