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

excluir registros repetidos misma tabla, escoge cual mostrar ??

Estas en el tema de excluir registros repetidos misma tabla, escoge cual mostrar ?? en el foro de Mysql en Foros del Web. Hola de nuevo Bueno veran, tengo una tabla donde pueden haber registros iguales, solo con dos campos diferencia, por ejemplo: tabla colaboradores: id:2 nombre: fukencio ...
  #1 (permalink)  
Antiguo 05/10/2012, 14:27
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
excluir registros repetidos misma tabla, escoge cual mostrar ??

Hola de nuevo

Bueno veran, tengo una tabla donde pueden haber registros iguales, solo con dos campos diferencia, por ejemplo:

tabla colaboradores:

id:2
nombre: fukencio
clave: A045N
...

y

id:15
nombre: fukencio
clave: 9045N
...


lo que quiero es que no me repita los nombres, pero que descarte siempre y para siempre el que en la clave empiece con A

esto es posible desde la consulta?

gracias
  #2 (permalink)  
Antiguo 05/10/2012, 14:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: excluir registros repetidos misma tabla, escoge cual mostrar ??

Perfectamente:
Código MySQL:
Ver original
  1. SELECT id, nombre, clave
  2. FROM tabla
  3. WHERE RIGHT(clave, 1) != 'A'
  4. GROUP BY nombre;

o bien:
Código MySQL:
Ver original
  1. SELECT id, nombre, clave
  2. FROM tabla
  3. WHERE clave LIKE 'A%'
  4. GROUP BY nombre;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/10/2012, 11:12
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: excluir registros repetidos misma tabla, escoge cual mostrar ??

Gracias gnzsoloyo

apenas tenga mi compu lo pruebo y te comento (por que ahí esta el proyecto) :D
  #4 (permalink)  
Antiguo 08/10/2012, 08:47
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: excluir registros repetidos misma tabla, escoge cual mostrar ??

hola ya probe y funciona bien pero hay un detalle, mira la consulta queda asi:

Código Apache:
Ver original
  1. SELECT zrpe, znombre, zdivision, LEFT(zfecha_nacim, 5)
  2. FROM t_zafemple
  3. WHERE LEFT(zfecha_nacim, 5) = '$fecha_hoy' AND LEFT(zrpe, 1) != 'Y'
  4. GROUP BY znombre

Pero mira yo puedo tener lo siguiente:

id:2
nombre: fukencio
clave: A045N
...


id:15
nombre: fukencio
clave: 9045N
...

id:20
nombre: trollencia
clave:A098C
...

entonces lo que tiene que suceder es mostrarme:


id:15
nombre: fukencio
clave: 9045N
...

id:20
nombre: trollencia
clave: A098C
...

es decir, solo va a excluir a los que empiecen con "A" cuando se repita su nombre.

  #5 (permalink)  
Antiguo 08/10/2012, 17:51
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: excluir registros repetidos misma tabla, escoge cual mostrar ??

Siento insistir, pero ahora tengo un poco mas claro lo que quiero obtener de la consulta y he cambiado algunas cosas:

Código MySQL:
Ver original
  1. SELECT clave, nombre, LEFT(fecha_nacim, 5)
  2. FROM colaboradores
  3. WHERE LEFT(fecha_nacim, 5) = '08-10' AND LEFT(clave, 1) REGEXP '[0-9]'
  4. GROUP BY nombre

La primer condicion funciona bien, solo compara fecha actual con la del registro, en eso no hay problema.

Lo que necesito es que en la segunda condición, la expresión regular solo se ejecute en caso que el nombre este repetido, si no, que si permita mostrar claves que empiezen con letras.

Lo que hace ahora es que no muestra ni una clave que empiece con letra.

Pregunto otra vez, esta distinción se puede hacer desde la misma consulta???

Por ejemplo

Código MySQL:
Ver original
  1. SELECT clave, nombre, LEFT(fecha_nacim, 5)
  2. FROM colaboradores
  3. WHERE LEFT(fecha_nacim, 5) = '08-10' AND ((si nombre==nombre) LEFT(clave, 1) REGEXP '[0-9]')
  4. GROUP BY nombre

Gracias por su tiempo

Etiquetas: excluir, registros, repetidos, tabla, campos
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 14:44.