通过SQL查找草稿帖子的所有特色图片的位置

时间:2020-03-28 作者:Adilicious

我正试图通过SQL和phpmyadmin获取草稿类型帖子中使用的所有特征图像的文件位置。

posts类型附件应在guid列中保留图像的位置。

SELECT voybp_posts.guid
FROM voybp_posts
WHERE voybp_posts.ID IN (
    SELECT voybp_postmeta.meta_value
    FROM voybp_postmeta
    WHERE voybp_postmeta.post_id IN (
        SELECT voybp_posts.ID
        FROM voybp_posts
        WHERE voybp_posts.post_status="draft"))
这个脚本应该很好,但它非常复杂,需要永远执行,我有什么方法来简化它吗?

1 个回复
SO网友:Adilicious

好吧,这对我很有用:

首先运行下面的脚本,生成用于草稿帖子的所有文件的文件位置。

SELECT voybp_posts.guid
FROM voybp_posts
WHERE voybp_posts.ID IN (SELECT voybp_postmeta.meta_value
                         FROM voybp_postmeta
                         WHERE voybp_postmeta.post_id IN (
                             SELECT voybp_posts.ID
                             FROM voybp_posts
                             WHERE voybp_posts.post_status="draft")
                         AND voybp_postmeta.meta_key="_thumbnail_id")
将其导出为CSV文件并保存到桌面,然后使用记事本++或类似程序使用查找/替换将rm添加到每行的开头。

下一步SSH进入服务器并执行rm命令。

接下来,修改上述脚本并运行它以删除数据库中没有任何结果的附件文件。

DELETE
FROM voybp_posts
WHERE voybp_posts.ID IN (SELECT voybp_postmeta.meta_value
                         FROM voybp_postmeta
                         WHERE voybp_postmeta.post_id IN (
                             SELECT voybp_posts.ID
                             FROM voybp_posts
                             WHERE voybp_posts.post_status="draft")
                         AND voybp_postmeta.meta_key="_thumbnail_id")
最后,我们找到并删除草稿帖子。

DELETE
FROM voybp_posts
WHERE voybp_posts.post_status="draft"
AND voybp_posts.post_type="post"
希望这有帮助

相关推荐

如果产品具有元价值,则将产品列表更新为特色(MySQL不是wpQuery)

因为woo 3的特色产品是分类法“product\\u可见性”的名称和鼻涕虫。我需要将列表中包含的具有相同meta\\u值的所有产品更新为“特色产品”。我的产品有一个meta\\u密钥=\'product\\u cip\'我要与“product\\u cip”比较的cip列表有(123465712637094563832837472)等。我可以选择像这样的所有特色产品,但不知道如何更新:SELECT post_title, ID FROM wp_posts INNER JOIN wp_postme