看到以下代码:
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" 是什么意思 ?

解决方案 »

  1.   

    就 SQL 指令而言 pm 是表  wp_postmeta 的别名,wp 是表  wp_posts 的表名稍微复习一下数据库知识就可以回忆起来
      

  2.   

    标签的记录是存放在 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 。请教高人,红色字体部分是什么用法?
      

  3.   

    明白了。红色字体部分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 数据。
    还请高手指点
      

  4.   

    他不是有 WHERE wp.ID IS NULL 吗?