Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Varias consultas

Estas en el tema de Varias consultas en el foro de Mysql en Foros del Web. Tengo que limpiar una base de datos y hay algunas cosas que no se cómo hacer: 1) Borrar todos los registros que se repitan en ...
  #1 (permalink)  
Antiguo 14/05/2007, 15:39
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 20 años, 10 meses
Puntos: 1
Varias consultas

Tengo que limpiar una base de datos y hay algunas cosas que no se cómo hacer:
1) Borrar todos los registros que se repitan en el campo CODIGO.
2) Borrar todos los registros que tengan como dato el número cero (0) en el campo NUMERO.
Alguien me puede ayudar?

Muchas gracias!
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #2 (permalink)  
Antiguo 14/05/2007, 23:13
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Re: Varias consultas

2) delete from tabla where numero=0
  #3 (permalink)  
Antiguo 15/05/2007, 05:51
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Varias consultas

Será posible hacer lo del punto uno con una sentencia MySQL simple? O hay que recorrer toda la tabla y hacer un algoritmo más complicado?
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #4 (permalink)  
Antiguo 15/05/2007, 10:11
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Varias consultas

Hola, con esta consulta puedes comparar registros de la misma tabla usando un alias de la tabla, es decir que deberias hacer lo mismo pero en vez de un SELECT, DELETE.

SELECT c1.codigo,c2.codigo FROM tutabla AS c1, tutabla AS c2 WHERE c1.codigo=c2.codigo

Espero que te sirva. Saludos
__________________
->Aprender es un proceso que incluye el error..
  #5 (permalink)  
Antiguo 15/05/2007, 10:21
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Re: Varias consultas

Esa consulta no le ayudaria, ya que le saldria todas las filas de las tablas.
Imagino que quieres borrar los datos repetidos, pero que quede solo uno, o quieres borrar todos?.
No se si seria posible que pongas los campos de la tabla. Puedes hacer esto para saber que codigos se repiten:

SELECT codigo,count(*)
FROM tu_tabla
GROUP BY codigo
HAVING COUNT(*)>1
Aqui te van a salir todos los repetidos. Te aconsejaria que hagas un distinct a la tabla respecto a este codigo y lo copies a otra tabla, para luego eliminar los datos de la tabla.
Es una sugerencia, espero haberme dejado entender.
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #6 (permalink)  
Antiguo 15/05/2007, 10:41
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Varias consultas

Claro, debería borrar todos los datos repetidos pero que uno quede!
PD: Qué es hacer un distinct?
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #7 (permalink)  
Antiguo 15/05/2007, 11:25
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Re: Varias consultas

SELECT DISTINCT codigo
FROM tu_tabla

Lo que hace es seleccionar todos los códigos, pero al visualizartelos, te mostrará uno solo no todos los existentes. Sería bueno que averigues respecto a DISTINCT.

Ejemplo:
Si tienes :
codigo
01
01
02
03
05
05

AL hacer la consulta, solo te saldra:
01
02
03
05

Con la consulta que puse arriba puedes ver que codigos se repiten. Dependiendo de que campos tengas puedes utilizar algún criterio para que te borren todos los códigos repetidos menos uno. Sigo pensando que pases los campos haciendo un DISTINCT a otra tabla y luego borres los datos de la tabla origen.
Cualquier consulta estamos por aqui, salvo que otra persona tenga otra sugerencia.
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #8 (permalink)  
Antiguo 15/05/2007, 13:00
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Varias consultas

Pero si lo hago de la 2da manera no es necesario borrarlo de la talba original, ya que supuestamente en la 2da tabla creada con el distinct voy a tener un úncio registro y ninguno repetido.
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:41.