mysql - 值字段不存在 (MySQL)

标签 mysql woocommerce

如果我运行这个查询:

SELECT
    wp_posts.ID,
    wp_posts.post_title,
    wp_posts.post_status,
    wp_postmeta.meta_key 
FROM
    wp_posts
    LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id 
WHERE
    post_type = 'product' AND 
    wp_postmeta.meta_key = 'cat_disabled' AND
    wp_postmeta.meta_value = 'on'

我得到 5348 条记录,但做相反的事情(获取 cat_disabled 键及其值未设置的记录,它需要永远:

SELECT
    wp_posts.ID,
    wp_posts.post_title,
    wp_posts.post_status,
    wp_postmeta.meta_key 
FROM
    wp_posts
    LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id 
WHERE
    post_type = 'product' AND 
    wp_postmeta.meta_key != 'cat_disabled' AND
    wp_postmeta.meta_value != 'on'

如何优化此查询以获取没有设置值 cat_disabled 的 meta_key 的产品。

最佳答案

没有所有的模式和一些数据来测试,这是一个建议:

SELECT
    wp_posts.ID,
    wp_posts.post_title,
    wp_posts.post_status,
    wp_postmeta.meta_key 
FROM
    wp_posts
LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id 
WHERE
    post_type = 'product' AND 
    wp_postmeta.post_id NOT IN
    (SELECT post_id 
    FROM wp_postmeta 
    WHERE meta_key = 'cat_disabled' AND
        meta_value = 'on')

关于mysql - 值字段不存在 (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45646246/

相关文章:

css - Woocommerce - [product_categories] 简码 - 如何从列表中排除两个类别?

php - 自过滤器 `woocommerce_grouped_children_args` 已从 WooCommerce 3 中删除后,按分组产品子项排序的替代方法

Python mysql 复制客户端不显示值

php - 如何仅打印数组的索引

wordpress - 是否可以在 woocommerce 插件 WordPress 的单个产品页面上添加联系表单?

php - 根据 WooCommerce 中的特定购物车总额添加费用

mysql - 将字符串连接到 SELECT * MySql

php - 添加新用户表的 mySQL 表结构

php - 尝试更新 php/mysql 代码以更改为新密码时出错

php - Woocommerce 3 中的自定义结账字段和运输方式 ajax 交互