【发布时间】:2011-08-18 11:11:58
【问题描述】:
我有一个表应该跟踪给定配置文件的访问者(用户 ID 到用户 ID 对)。事实证明我的 SQL 查询有点不对劲,并且按预期生成了多对而不是单对。事后看来,我应该对每个 id+id 对强制执行唯一约束。
现在,我该如何清理桌子?我想要做的是删除所有重复的对,只留下一个。
所以例如改变这个:
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
...
进入这个:
23515 -> 52525 date_visited
12345 -> 54321 date_visited
更新:这是所要求的表结构:
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
【问题讨论】:
-
请问表结构是什么?是否有第 3 列用于平局值?
-
@gbn:表结构已添加(MySQL)。第三列是跟踪用户上次访问个人资料的时间。该结构可能应该通过对 profile_id 和 visitor_id 的约束进行修改。 P.S:我现在没有填充表的 SQL,但它类似于
if exists update timestamp if not create record。
标签: sql sql-delete