【问题标题】:Retrieve all WooCommerce products without image that are in stock via SQL通过 SQL 检索所有库存中没有图像的 WooCommerce 产品
【发布时间】:2019-09-23 15:46:10
【问题描述】:
我使用这个查询 sql 来检索所有没有图片的产品
SELECT id
FROM `wp_posts`
WHERE id NOT IN (SELECT post_id FROM `wp_postmeta` WHERE `meta_key` =
'_thumbnail_id')
AND `post_type` = 'product'
AND `post_status` = 'publish'
现在我要检索所有库存中没有图片和库存状态的产品,有什么办法吗?
【问题讨论】:
标签:
php
mysql
sql
wordpress
woocommerce
【解决方案1】:
以下 SQL 查询将允许您检索“有货”但没有图片的产品:
SELECT ID
FROM wp_posts p
INNER JOIN wp_postmeta pm ON p.ID = pm.post_id
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = '_thumbnail_id')
AND p.post_type = 'product'
AND p.post_status = 'publish'
AND pm.meta_key = '_stock_status'
AND pm.meta_value = 'instock'
或者你可以使用WPDB类通过php查询它,比如:
global $wpdb;
$product_ids = $wpdb->get_col( "
SELECT ID
FROM {$wpdb->prefix}posts p
INNER JOIN {$wpdb->prefix}postmeta pm ON p.ID = pm.post_id
WHERE ID NOT IN (SELECT post_id FROM {$wpdb->prefix}postmeta WHERE meta_key = '_thumbnail_id')
AND p.post_type = 'product'
AND p.post_status = 'publish'
AND pm.meta_key = '_stock_status'
AND pm.meta_value = 'instock'
");
// Raw output
print_r($product_ids);