Mysql 隐藏我正在计算的列
在我的查询中,我正在查找payment_方法,删除所有没有“cod”值的行,但我想从输出中删除此列。我怎样才能做到Mysql 隐藏我正在计算的列,mysql,sql,Mysql,Sql,在我的查询中,我正在查找payment_方法,删除所有没有“cod”值的行,但我想从输出中删除此列。我怎样才能做到 SELECT max( CASE WHEN um.meta_key = 'hrid' THEN um.meta_value END ) AS HRID, max( CASE WHEN pm.meta_key = '_order_total' AND p.ID = pm.post_id THEN pm.meta_value END ) AS order_total,
SELECT
max( CASE WHEN um.meta_key = 'hrid' THEN um.meta_value END ) AS HRID,
max( CASE WHEN pm.meta_key = '_order_total' AND p.ID = pm.post_id THEN pm.meta_value END ) AS order_total,
max( CASE WHEN pm.meta_key = '_payment_method' AND p.ID = pm.post_id THEN pm.meta_value END ) AS payment_method
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
LEFT JOIN wp_woocommerce_order_items oi ON p.ID = oi.order_id
LEFT JOIN wp_users u ON u.ID = pm.meta_value AND pm.meta_key = '_customer_user'
LEFT JOIN wp_usermeta um ON um.user_id = u.ID
WHERE post_type = 'shop_order' and post_status = 'wc-completed'
GROUP BY p.ID
HAVING payment_method = 'cod'
Result right now
HRID order_total payment_method
x y z
Expected result
HRID order_total
x y
将条件移动到
having
子句:
SELECT max( CASE WHEN um.meta_key = 'hrid' THEN um.meta_value END ) AS HRID,
max( CASE WHEN pm.meta_key = '_order_total' AND p.ID = pm.post_id THEN pm.meta_value END ) AS order_total
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
LEFT JOIN wp_woocommerce_order_items oi ON p.ID = oi.order_id
LEFT JOIN wp_users u ON u.ID = pm.meta_value AND pm.meta_key = '_customer_user'
LEFT JOIN wp_usermeta um ON um.user_id = u.ID
WHERE post_type = 'shop_order' and post_status = 'wc-completed'
GROUP BY p.ID
HAVING max( CASE WHEN pm.meta_key = '_payment_method' AND p.ID = pm.post_id THEN pm.meta_value END ) = 'cod'
如果您仍在挣扎,请参见:将代码中的第4行抛出。在MAX的末尾有“AS payment_method”,这是要删除的变量的名称。扔掉整条线。