hardrock 发表于 2014-5-7 14:30:52

想删除数据库里同一个post或page多余的记录

本帖最后由 hardrock 于 2014-5-7 14:37 编辑

wp建站,phpmyadmin进入数据库,表: wp_posts
有些post 或 page 经过多次修改, 只想留最终的,
post_status--draft 我已经删除了。

例如同一个post有多个记录,
post_status       post_type
publish            post
inherit               revision
以上两记录,哪个是最终记录,哪个是可删除的记录?

同理同一个page
post_status      post_type
publish             page
inherit            revision
以上两记录,哪个是最终记录,哪个是可删除的记录?

ps, 我知道用插件可做到,但我想数据库直接删除。

小马哥 发表于 2014-5-7 15:05:35

哇,你搞得真复杂,楼主有洁癖吗,数据库搞得那么干净做什么--!习惯插件了:( 这个还真不知道

hardrock 发表于 2014-5-7 15:08:57

本帖最后由 hardrock 于 2014-5-7 15:12 编辑

小马哥 发表于 2014-5-7 15:05
哇,你搞得真复杂,楼主有洁癖吗,数据库搞得那么干净做什么--!习惯插件了:( 这个还真不知道
...
其实我是想知道插件是删除了那些记录?

dxszzcylm 发表于 2014-5-7 16:44:04

既然插件可以做到还要每次登陆数据库去挨条检查删除?把时间花在有意义的地方,汗。

mattfox 发表于 2014-5-7 19:41:18

保留publish状态的记录就可以了,并关闭自动保存

akzovk 发表于 2014-5-8 00:10:16

本帖最后由 akzovk 于 2014-5-8 16:26 编辑

如果是想清理post表,楼主可以对比一下post_type和post_status这两个字段。post_status为"publish",post_type里,有post和page之分,估计你只想清理post。

hardrock 发表于 2014-5-8 14:46:52

本帖最后由 hardrock 于 2014-12-4 19:15 编辑

mattfox 发表于 2014-5-7 19:41
保留publish状态的记录就可以了,并关闭自动保存
你的意思是,
post_status为"publish",post_modified 也是最近的时间, 那个就是最新的记录,保留这个就可以了?
post_date --post首发时间
post_modified --post最新修改时间
post_status为"publish",保留这个就可以了

post 表里,状态为 publish 的才是最新的,是已发布的文章。


delete from wp_posts where post_type='revision'
delete from wp_posts where post_status='auto-draft'


主域名做域名的情况
phpMyAdmin
option_name          option_value         
siteurl                   http://A.net/A.net
home                   http://A.net
wordpress site
WordPress Address (URL)    http://A.net/A.net   WordPress地址(URL)
Site Address (URL)             http://A.net            站点地址(URL)

mattfox 发表于 2014-5-8 15:10:48

hardrock 发表于 2014-5-8 14:46
你的意思是,
post_status为"publish",post_date也是最近的时间, 那个就是最新的记录,保留这个就可以 ...

同一条记录 "publish"的状态有且只有一个 否则设定它为"publish"还有什么意义
页: [1]
查看完整版本: 想删除数据库里同一个post或page多余的记录