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

No repetir registro

Estas en el tema de No repetir registro en el foro de Mysql en Foros del Web. Hola. Tengo una tabla con datos de personas (nombre, apellido, conyugue, hijos, etc). Mi script busca en la tabla un apellido que ingresa un usuario, ...
  #1 (permalink)  
Antiguo 27/08/2006, 14:08
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 18 años, 4 meses
Puntos: 0
No repetir registro

Hola.
Tengo una tabla con datos de personas (nombre, apellido, conyugue, hijos, etc).

Mi script busca en la tabla un apellido que ingresa un usuario, y trae una lista de todas personas que lo tengan.
Ahora bien. Algunas personas estan casadas mas de una vez entonces estan repetidas en la tabla con mismo id, mismo apellido, todo igual menos el idmatrimonio.

Al hacer esto:
$query = "SELECT id,apellido,mrin,mrinpadres FROM datos WHERE apellido LIKE '%$a%'";

¿como le indico que si está repetido no lo traiga dos/tres/cinco veces?
GRACIAS!!!
  #2 (permalink)  
Antiguo 27/08/2006, 15:15
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 18 años, 3 meses
Puntos: 0
Si te refieres a filas idénticas (filas resultado no de la tabla) entonces lo mejor es usar distinct:

SELECT DISTINCT id,apellido,mrin,mrinpadres FROM datos WHERE apellido LIKE '%$a%

Aunque yo creo que deberías estudiar otro enfoque para tu BD. Yo creo que tienes una gran redundancia de datos. Me refiero a que deberías usar una tabla distinta para almacenar matrimonios que usara claves de la de personas. Algo así como tres campos: Id, IdConyugue1, IdConyugue2. Los dos últimos enlazarían con la tabla de personas en la cual ya no sería necesario repetir datos.
  #3 (permalink)  
Antiguo 27/08/2006, 15:32
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 18 años, 4 meses
Puntos: 0
Claro. Pasa que ya tenía todo armado y funcionando, y me agregaron esos datos.

Voy a intentarlo.

GRACIAS
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 13:45.