症状: dede:list 标签出现混淆,一些分类的文章没有显示,原因是删除文章的时候只删除了dede_archives 表,而dede_arctiny表没做相应的删除行,你会发现有些文章id在dede_arctiny表里依然存在,而dedecms原本为了加快速度的dede_arctiny表反而导致了错误。
select id from dede_arctiny where not exists(select * from dede_archives where dede_arctiny.id=dede_archives.id);
这个语句就可以看出来存在于dede_arctiny表里的多余数据,但是并不保证缺失数据
删除dede_arctiny里面的无效数据的sql语句为
delete from dede_arctiny where not exists(select * from dede_archives where dede_arctiny.id=dede_archives.id);
================================================================
下面是我们写的查缺补漏的全部重新生成最新鲜数据dede_arciny表的方法:
dedecms 织梦的dede_arctiny表的重整
truncate table `dede_arctiny`;
insert into `dede_arctiny`(`id`,`typeid`,`typeid2`,`arcrank`,`channel`,`senddate`,`sortrank`,`mid`) select `id`,`typeid`,`typeid2`,`arcrank`,`channel`,`senddate`,`sortrank`,`mid` from `dede_archives` where `arcrank` > -1 order by `id` asc ;