看到以下代码:
WordPress 使用久了,有些 Post 删除了,但是其对应的 Post meta 数据还存在,那么怎么删除这些孤立的 Post Meta 数据呢?在数据库管理软件中直接运行下面的 SQL 语句:
DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL
----不解的是,“pm" ,"wp" 是什么意思 ?
就 SQL 指令而言 pm 是表 wp_postmeta 的别名,wp 是表 wp_posts 的表名
稍微复习一下数据库知识就可以回忆起来
标签的记录是存放在 wp_terms 这个数据表中的。有时,可能部分标签创建了但是没有被使用,他们仍然会在数据表中。以下语句可以对这些未使用的标签进行查询,您可以安全的将其删除。
SELECT * From wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0
----谢谢提醒。我复习多遍了,可哪儿也没告诉我这种用法。刚又看到了类似的用法,如上 wt wtt 。请教高人,红色字体部分是什么用法?
明白了。红色字体部分 wt wtt 是 wp_terms、 wp_term_taxonomy的别名。我还不明白的是,在以下代码中:
DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL
---- DELETE pm 是不是把整个 wp_postmeta 表都删除了?而我们的本意并不是如此啊!我们只是想删除那些孤立的 Post Meta 数据。
还请高手指点
他不是有 WHERE wp.ID IS NULL 吗?