gpt4 book ai didi

mysql - 如果特定的 meta_key 不存在,则 wordpress 自定义 mysql 查询仅获取帖子

转载 作者:行者123 更新时间:2023-11-29 01:22:43 30 4
gpt4 key购买 nike

我正在尝试使用自定义查询获取 wp 帖子。这是 sql 查询:

SELECT p.*, IFNULL(SUM(vote), 0) AS vote_count, CAST(m.meta_value AS SIGNED) AS idea_count
FROM wp_posts p
INNER JOIN wp_term_relationships r ON p.ID=r.object_id
INNER JOIN wp_term_taxonomy t ON t.term_taxonomy_id=r.term_taxonomy_id AND t.taxonomy='category'
LEFT JOIN wp_wdpv_post_votes v ON v.post_id=p.ID
LEFT JOIN wp_postmeta m ON m.post_id=p.ID AND m.meta_key='ideas_count'
WHERE p.post_status='publish' AND p.post_type='post' AND t.term_id='5'
GROUP BY p.ID
ORDER BY p.ID DESC
LIMIT 0, 8

此 sql 查询工作正常。但现在我有另一种情况,我想显示使用此查询的帖子,但只显示没有特定元键的帖子。要过滤的元键是

'private_spaces_post'

这可能特定于 mysql 查询。但如果有人能给我一个解决这个问题的方法,我将非常感激。

最佳答案

您可以针对子查询LEFT JOIN,该子查询仅返回那些确实具有private_spaces_post的子查询,并查找NULLs

SELECT p.*, IFNULL(SUM(vote), 0) AS vote_count, CAST(m.meta_value AS SIGNED) AS idea_count
FROM wp_posts p
INNER JOIN wp_term_relationships r ON p.ID=r.object_id
INNER JOIN wp_term_taxonomy t ON t.term_taxonomy_id=r.term_taxonomy_id AND t.taxonomy='category'
LEFT JOIN wp_wdpv_post_votes v ON v.post_id=p.ID
LEFT JOIN wp_postmeta m ON m.post_id=p.ID AND m.meta_key='ideas_count'
/* LEFT JOIN subquery returning only ids that *do* have the meta key */
LEFT JOIN (
SELECT post_id FROM wp_postmeta WHERE meta_key='private_spaces_post'
) psp ON p.ID = psp.post_id
WHERE p.post_status='publish' AND p.post_type='post' AND t.term_id='5'
/* And find post ids from the main table that *don't* have a match in the subquery (LEFT JOIN returns NULL) */
AND psp.post_id IS NULL
GROUP BY p.ID
ORDER BY p.ID DESC
LIMIT 0, 8

关于mysql - 如果特定的 meta_key 不存在,则 wordpress 自定义 mysql 查询仅获取帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13689344/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com