Ver Mensaje Individual
  #17 (permalink)  
Antiguo 06/09/2009, 18:28
Avatar de thesixhalcon
thesixhalcon
 
Fecha de Ingreso: noviembre-2007
Ubicación: Madrid (España)
Mensajes: 55
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: FAQ's de MySQL

Pregunta: Tengo una base de datos enorme y hay bastantes valores repetidos en una tabla que me gustaría borrar. ¿Cómo lo hago?

Respuesta:
Seguro que muchos de vosotros habéis tenido un problema parecido y probablemente no hayais encontrado una manera genérica de hacerlo, bien, pues aquí lo dejo:
Código sql:
Ver original
  1. SELECT a.columna
  2. FROM tabla AS a
  3. WHERE (SELECT COUNT(*)
  4.              FROM tabla AS b
  5.              WHERE a.columna = b.columna) > 1

Esta de aquí para que sólo os aparezcan una muestra de lo repetido (Sólo se añade un DISTINCT):
Código sql:
Ver original
  1. SELECT DISTINCT a.columna
  2. FROM tabla AS a
  3. WHERE (SELECT COUNT(*)
  4.              FROM tabla AS b
  5.              WHERE a.columna = b.columna) > 1

EDITO:
Otra forma de hacerlo, gracias a huesos52, es:
Código sql:
Ver original
  1. SELECT *
  2. FROM tabla
  3. GROUP BY campo
  4. HAVING COUNT(*) > 1;

Un saludo!
__________________
Respondo a MP, si de verdad es necesario. No pidas que te den el código hecho, pide el método y aprende de él.
lowsession.com - ¡La noche es tuya!

Última edición por gnzsoloyo; 23/11/2012 a las 12:17 Razón: legibilidad de cosultas