SQL query to check product_type in WooCommerce

2019-02-18 10:15发布

问题:

I would like to filter products in WooCommerce by Simple or Variable Product through MySQL; but I could not find as how the WooCommerce stores the data and distinguishes between them in database.

I want an MySQL query to list all the Simple and Variable Product; I don't need any PHP code.

Something like:

SELECT * FROM wp_posts WHERE post_type = 'product' AND product_type = 'simple';

回答1:

MySQL query to list all Simple Products:

SELECT
    posts.ID,
    posts.post_title,
    posts.post_author,
    posts.post_date,
    posts.post_date_gmt,
    posts.post_content,
    posts.post_excerpt,
    posts.post_status,
    posts.comment_status,
    posts.ping_status,
    posts.post_password,
    posts.post_name,
    posts.to_ping,
    posts.pinged,
    posts.post_modified,
    posts.post_modified_gmt,
    posts.post_content_filtered,
    posts.post_parent,
    posts.guid,
    posts.menu_order,
    posts.post_type,
    posts.post_mime_type,
    posts.comment_count
FROM
    wp_posts AS posts
INNER JOIN wp_term_relationships AS term_relationships ON posts.ID = term_relationships.object_id
INNER JOIN wp_term_taxonomy AS term_taxonomy ON term_relationships.term_taxonomy_id = term_taxonomy.term_taxonomy_id
INNER JOIN wp_terms AS terms ON term_taxonomy.term_id = terms.term_id
WHERE
    term_taxonomy.taxonomy = 'product_type'
AND terms.slug = 'simple'
AND posts.post_type = 'product';

Just replace simple from AND terms.slug = 'simple' line with variable to get all Variable Products;

I have tested this SQL query and it is displaying the correct result.

Hope this helps!