我有一張表應該保留給定配置文件(用戶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
什麼是表結構嗎?是否有第三列來打破價值? – gbn 2011-05-04 11:31:19
@gbn:已添加表結構(MySQL)。第三列是保留用戶最後一次訪問配置文件的軌跡。該結構應該可以通過對profile_id&visitor_id的約束來修改。 P.S:我現在沒有填充表格的SQL,但它是'if exists update timestamp if not create record'行的。 – 2011-05-04 11:39:07