請問一下 為什麼這段程式碼無法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)那筆
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;
內文搜尋

X