mysql 刪除重複資料只留最新那筆?

請問一下 為什麼這段程式碼無法WORK

$del = mysql_query("
DELETE FROM notification
WHERE (from_id,get_id,text,beread,bepopup) in (SELECT from_id,get_id,text,beread,bepopup FROM notification
GROUP BY from_id,get_id,text,beread,bepopup HAVING COUNT(*) >1)
AND not in (ORDER BY time DESC LIMIT 1)
");

我是要假設這五個欄位(from_id,get_id,text,beread,bepopup)值都一樣
則刪除最舊的筆數只留最新(time)那筆
2016-08-24 15:09 發佈
文章關鍵字 sq MySQL 資料
運行前請先做備份


DELETE `n1` FROM
`notification` as `n1`
LEFT JOIN (
SELECT
`from_id` , `get_id` , `text` , `beread` , `bepopup`, MAX(`time`) as `time`
FROM
`notification`
GROUP BY
`from_id` , `get_id` , `text` , `beread` , `bepopup`
) as `n2` ON
`n1`.`from_id` = `n2`.`from_id` AND
`n1`.`get_id` = `n2`.`get_id` AND
`n1`.`text` = `n2`.`text` AND
`n1`.`beread` = `n2`.`beread` AND
`n1`.`bepopup` = `n2`.`bepopup` AND
`n1`.`time` = `n2`.`time`
WHERE
`n2`.`time` IS NULL;

sing0920 wrote:
運行前請先做備份DE...(恕刪)


感謝幫助
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?