Dedehtml.com

织梦列表页数据重复解决方法

摘要:dede:list 列表调用出来的新闻,每一个都重复了两次,怎么解决?

dede:list 列表调用出来的新闻,每一个都重复了两次,怎么解决?

清空所有稳定数据重新添加的解决方法

注意:以下操作,所有文档会被清空,栏目不会清空

后台-系统-SQL命令行工具-执行

TRUNCATE #@__addonarticle;
TRUNCATE #@__arccache;
TRUNCATE #@__arctiny;
TRUNCATE #@__archives;

如果你的文档只有文章模型的话执行上面几行SQL就行了,如果还有其他模型,需要加上

TRUNCATE #@__其他模型附加表

例如下图

那就要加上这几句

TRUNCATE #@__news
TRUNCATE #@__tuwen
TRUNCATE #@__guanyu
TRUNCATE #@__addonimages

执行完后,更新栏目缓存,更新系统缓存,重新添加个文章,生成列表,看效果。

只删除重复数据的解决方法

注意:以下操作之前必须先备份数据!

注意:以下操作之前必须先备份数据!

注意:以下操作之前必须先备份数据!

1、后台-系统-SQL,每次执行一条语句,看哪条语句执行后有重复记录出现

SELECT aid,COUNT(*) FROM `#@__addonarticle` GROUP BY aid HAVING COUNT(*) > 1;
SELECT id,COUNT(*) FROM `#@__archives` GROUP BY id HAVING COUNT(*) > 1;
SELECT id,COUNT(*) FROM `#@__arctiny` GROUP BY id HAVING COUNT(*) > 1;

记住,是一次执行一条,上面是3条语句

如果重复数据是图片集模型或者其他模型,把上面第一条语句的 addonarticle 改成你模型对应的附加表

2、后台-系统-SQL,执行一下删除重复数据的语句

DELETE FROM `#@__addonarticle` WHERE aid IN ( SELECT aid FROM ( SELECT aid,COUNT(*) FROM `#@__addonarticle` GROUP BY aid HAVING COUNT(*) > 1 ) AS a) LIMIT 1000;
DELETE FROM `#@__archives` WHERE id IN ( SELECT id FROM ( SELECT id,COUNT(*) FROM `#@__archives` GROUP BY id HAVING COUNT(*) > 1 ) AS a) LIMIT 1000;
DELETE FROM `#@__arctiny` WHERE id IN ( SELECT id FROM ( SELECT id,COUNT(*) FROM `#@__arctiny` GROUP BY id HAVING COUNT(*) > 1 ) AS a) LIMIT 1000;

如果重复数据是图片集模型或者其他模型,把上面第一条语句的 addonarticle (有2处) 改成你模型对应的附加表

limit表示你要删除的条数,由于删除语句的执行速度比较慢,如果数据较多建议设定一个条数,比如先删除1000或者10000条。否则数据过大的话,mysql执行太慢会崩溃,心急去关闭再执行的话,会发生锁表而无法操作数据库。

3、后台-核心-网站栏目管理,更新栏目缓存,重新生成栏目列表,清浏览器缓存。

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.dedehtml.com/notes/truncate-table.html
(15)
打赏 微信扫一扫 微信 支付宝 QQ 扫码打赏