如何找到没有特色图片的Woocommerce产品

时间:2013-12-12 16:01:25

标签: php mysql sql wordpress woocommerce

我正在尝试创建一个SQL查询,它将在我的MySQL数据库中输出没有分配特色图像的Woocommerce产品。由于Woo基于Wordpress,我不知道从哪里获取信息,但看起来好像我需要加入一些表格。

有没有人有这方面的经验?我有500个产品,都需要有一个特色图片。我随机地浏览它们并分配每个产品一个,但我需要看看有多少剩下要做,哪些需要做。

我无法按Woocommerce后端的特色图片对产品进行排序,所以我希望可以通过SQL查询来实现。

看起来我找到了正确的查询。它加入了一些表格,为我提供了所有产品和特色图片的列表。然后我可以对此列表进行排序,看看哪些产品有NULL特色图片。我使用的SQL查询是在它帮助某人的情况下:

SELECT p.ID, p.post_title, pm.*
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
    AND pm.meta_key = '_thumbnail_id'
WHERE p.post_type IN ( 'product' )

4 个答案:

答案 0 :(得分:2)

这将是我的查询。它将返回所有没有图片的帖子ID(与产品ID相同)

select ID FROM wp_posts WHERE ID NOT IN (select post_id from wp_postmeta WHERE meta_key="_thumbnail_id") AND post_type="product"

答案 1 :(得分:1)

创建名为from collections import defaultdict invert_dict = defaultdict(set) for k, v in orig_dict.items(): invert_dict[v].add(k) # Optionally convert back to regular dict to avoid lookup auto-vivification in the future: # invert_dict = dict(invert_dict) 的视图:

Products_List

然后使用上面的SELECT `wptt_posts`.`post_title` AS `post_title`, `wptt_posts`.`post_name` AS `post_name`, `wptt_postmeta`.`meta_value` AS `meta_value`, `wptt_posts`.`ID` AS `ID` FROM ( `wptt_posts` JOIN `wptt_postmeta` ON ( ( `wptt_posts`.`ID` = `wptt_postmeta`.`post_id` ) ) ) WHERE ( ( `wptt_posts`.`post_type` = 'product' ) AND ( `wptt_postmeta`.`meta_key` = '_sku' ) ) ORDER BY `wptt_postmeta`.`meta_value` 创建另一个查询:

Products_List

答案 2 :(得分:0)

另一种不使用NOT IN的可能性:

SELECT p.ID, p.post_title 

FROM `wp_posts` as p LEFT OUTER JOIN wp_postmeta pm ON (p.ID=pm.post_id AND pm.meta_key = '_thumbnail_id') 

WHERE p.post_type = 'product' 
AND 
(meta_key IS NULL OR meta_value = "")

答案 3 :(得分:0)

可以用 sku 吗? (没有唯一的id)

SELECT p.ID, p.post_title 
FROM `wp_posts` as p 
LEFT OUTER JOIN wp_postmeta pm 
    ON (p.ID=pm.post_id AND pm.meta_key = '_thumbnail_id')
WHERE 
    p.post_type = 'product' 
    AND (meta_key IS NULL OR meta_value = "")