Tengo una tabla que se supone que debe mantener un rastro de visitantes a un perfil determinado (identificación de usuario a par de identificación de usuario). Resultó que mi consulta SQL estaba un poco desajustada y está produciendo varios pares en lugar de los únicos como estaba previsto. En retrospectiva, debería haber impuesto una restricción única en cada par id + id.Eliminar todos menos un registro duplicado
Ahora, ¿cómo podría hacer para limpiar la mesa? Lo que quiero hacer es borrar todos los pares duplicados y dejar solo uno.
Así, por ejemplo, cambiar esta situación:
23515 -> 52525 date_visited
23515 -> 52525 date_visited
23515 -> 52525 date_visited
12345 -> 54321 date_visited
12345 -> 54321 date_visited
12345 -> 54321 date_visited
12345 -> 54321 date_visited
23515 -> 52525 date_visited
...
En esto:
23515 -> 52525 date_visited
12345 -> 54321 date_visited
Actualización: Aquí es la estructura de la tabla conforme a lo solicitado:
id int(10) UNSIGNED Non Aucun AUTO_INCREMENT
profile_id int(10) UNSIGNED Non 0
visitor_id int(10) UNSIGNED Non 0
date_visited timestamp Non CURRENT_TIMESTAMP
¿Cuál es la estructura de la tabla, por favor? ¿Hay una tercera columna para los valores de desempate? – gbn
@gbn: se ha agregado la estructura de la tabla (MySQL). La tercera columna es para mantener un rastro de la última vez que un usuario visitó un perfil. La estructura probablemente debería modificarse con una restricción en profile_id y visitor_id. P.S: No tengo el SQL rellenando la tabla en este momento, pero es algo así como 'si existe una marca de tiempo de actualización si no se crea un registro'. –