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

Cómo borrar direcciones de email que tengan dominios duplicados en 2 tablas

Estas en el tema de Cómo borrar direcciones de email que tengan dominios duplicados en 2 tablas en el foro de Mysql en Foros del Web. Hola a todos: Necesito comparar los valores que hay despues del simbolo @ en el campo email en dos tablas. Lo que busco es borrar ...
  #1 (permalink)  
Antiguo 21/12/2009, 07:54
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 20 años, 10 meses
Puntos: 0
Cómo borrar direcciones de email que tengan dominios duplicados en 2 tablas

Hola a todos:
Necesito comparar los valores que hay despues del simbolo @ en el campo email en dos tablas.

Lo que busco es borrar direcciones de email que tengan dominios duplicados en las dos tablas, en el campo email.

Siguiendo un tutorial, he probado primero a hacer una selección de todo lo que hay a la derecha de la arroba en un campo con:
select * from usuarios where email REGEXP "@*"
pero no se exactamente lo que hace, lo que si se, es que no devuelve lo que yo espero, que es todo lo que hay a la derecha de la arroba.

¿Saben como puedo hacerlo o donde estoy errando en el select anterior?
Gracias
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #2 (permalink)  
Antiguo 21/12/2009, 08:49
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Cómo borrar direcciones de email que tengan dominios duplicados en 2 tabla

para localizar dominios puedes combinar las funciones locate y substring para obtener todas las direcciones despues de la @

con un ejemplo

Código MySQL:
Ver original
  1. mysql> select mail from email;
  2. +--------------------+
  3. | mail               |
  4. +--------------------+
  5. +--------------------+
  6. 6 rows in set (0.00 sec)
  7.  
  8. mysql> select substring(mail,locate('@',mail)+1) from email;
  9. +------------------------------------+
  10. | substring(mail,locate('@',mail)+1) |
  11. +------------------------------------+
  12. | hotmail.com                        |
  13. | hotmail.com                        |
  14. | gmail.com                          |
  15. | gmail.com                          |
  16. | yahoo.com                          |
  17. | yahoo.com                          |
  18. +------------------------------------+
  19. 6 rows in set (0.00 sec)
  20.  
  21. mysql>

me imagino que con esto ya puedes hacer algo

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 21/12/2009, 11:39
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Cómo borrar direcciones de email que tengan dominios duplicados en 2 tabla

Es parte de lo que necesito. Lo que quiero es borrar en la tabla copia los registros que en el campo email tengan los mismos dominios que se encuentran en la tabla usuarios.

Para lo que he hecho lo siguiente, aunque no me encuentra ninguno y sé que hay dominos duplicados.

DELETE FROM copia
WHERE
(SELECT SUBSTRING(email,LOCATE('@',email)+1)
FROM usuarios)

gracias
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #4 (permalink)  
Antiguo 21/12/2009, 21:45
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
Respuesta: Cómo borrar direcciones de email que tengan dominios duplicados en 2 tabla

podrías poner los campos que tiene tu tabla de los emails repetidos, para poder ayudarte y ojala los tipos de campos.
Si tienes 3 registros repetidos, cual quieres dejar?? el primero, el ultimo, el del medio??? cualquiera??? de que depende???
por eso es importante que no expliques un poco mejor, con un ejemplo quizas
Saludos
__________________
________________________________________

Ugho.
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 21:49.