Avada Car Dealer News

由于maccms10(苹果cms)采集数据方便,网上模板也一大堆,半小时就能建好一个电影网站,很多朋友都使用它。但是随着采集源越来越多可能会造成电影或者演员数据大量重复,对搜索引擎不是很友好,对网站SEO来说大量的重复数据也是大忌。

虽然苹果cms后台有VOD数据去重的功能,但是没有演员或者其他数据去重的功能,刚好今天何大佬又在咨询这个问题,通过我一番百度结合各位其他大佬的操作,终于找到了方法。下面记录一下。

何大佬的maccms10的问题
何大佬的maccms10的问题

当然,你可以直接使用后台的一键删重功能。但是演员数据貌似没有此功能。

maccms10一键删重功能
maccms10一键删重功能

一、删除MACCMS10重复的演员数据

演员表表名:mac_actor(如果你数据库表前缀更改过,请更改红色部分)。

以下sql语句的功能是删除mac_actor表中actor_name【演员名称】重复的数据保留id最小的一条。有点绕。大白话就是:如果有相同(重复)的演员名称就删除,但保留id最小的那一条,这样就不会有重复数据了。

DELETE
FROM mac_actor
WHERE actor_name IN(SELECT
actor_name
FROM (SELECT
actor_name
FROM mac_actor
GROUP BY actor_name
HAVING COUNT(actor_name) > 1) a)
AND actor_id NOT IN(SELECT
*
FROM (SELECT
MIN(actor_id)
FROM mac_actor
GROUP BY actor_name
HAVING COUNT(actor_name) > 1) b)

以上sql语句可以直接复制粘贴过去运行。

但是要注意:如果你的表名或者数据库前缀改了,请把红色部分更换成和你相同的表名或字段。

上面知道删除演员重复数据了,那重复的删除电影数据就不难了,替换一些表名和字段不就OK了么。

二、删除MACCMS10重复电影名称数据

替换一下就OK,删除重复的电影名称保留id最小的那一条,来看看完整的SQL。

DELETE
FROM mac_vod
WHERE vod_name IN(SELECT
vod_name
FROM (SELECT
vod_name
FROM mac_vod
GROUP BY vod_name
HAVING COUNT(vod_name) > 1) a)
AND vod_id NOT IN(SELECT
*
FROM (SELECT
MIN(vod_id)
FROM mac_vod
GROUP BY vod_name
HAVING COUNT(vod_name) > 1) b)

如果你是默认数据库,直接复制粘贴过去运行就OK了。但是如果你更改过表前缀,红色部分依然是需要注意的,记得修改哦。下图是测试后成功的截图。

maccms10删除重复数据测试
maccms10删除重复数据测试

具体每一句的功能我就不叙了,因为我也很渣,看到都头疼,你直接拿去用没有问题的,是经过我测试的。

以上就是maccms10电影或演员库数据使用sql语句去重的方法,都经过我测试可以直接复制粘贴运行的,希望对大家有帮助。

评一波