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';
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!