苹果CMS文档

这段 SQL 原文有格式错误,而且删除逻辑也不正确。**如果目的是苹果CMS删除 `vod` 表中 `vod_name` 重复的数据,同时保留每个名称的一条记录**,建议使用下面这种写法,更安全直观。

苹果CMS删除数据库重复数据

在使用苹果CMS采集影视资源时,如果因为重复采集导致数据库中出现相同影片名称的重复记录,可以通过SQL语句清理重复数据。执行删除操作前,务必先备份数据库,避免误删重要数据。

删除重复影片并保留一条

如果需要按照影片名称 vod_name 判断重复,并保留每个影片名称最早的一条记录,可以使用以下SQL语句:

DELETE v1
FROM {pre}vod v1
INNER JOIN {pre}vod v2
ON v1.vod_name = v2.vod_name
AND v1.vod_id > v2.vod_id;

上面的语句会按照 vod_name 判断重复记录,并保留 vod_id 最小的一条数据,删除其他相同影片名称的重复记录。

执行前先查询重复数据

为了避免直接删除造成误操作,建议先使用查询语句检查数据库中有哪些重复影片:

SELECT vod_name, COUNT(*) AS num
FROM {pre}vod
GROUP BY vod_name
HAVING COUNT(*) > 1
ORDER BY num DESC;

确认查询结果没有问题后,再执行删除重复数据的SQL语句。

只删除完全重复的影片需要注意

vod_name 相同并不一定代表两条数据完全重复。例如,同名影片可能存在不同年份、不同版本或不同资源。因此,如果网站数据库中可能存在同名但不同影片的情况,不建议直接按照 vod_name 批量删除。

如果你的苹果CMS数据库中确实是因为重复采集产生了大量完全相同的影片记录,建议先备份数据库,再根据实际数据结构确定重复判断条件后执行删除。

总结

苹果CMS清理重复影片时,建议先通过 GROUP BY vod_name 查询重复数据,确认无误后再执行删除。相比直接使用不完整的删除语句,使用自连接方式可以明确保留一条记录,减少误删风险。