我有一堆带有元键 footer_element_meta_alignment
的自定义帖子类型页脚元素。现在,我正在尝试获取三个最新的帖子,meta_values
是 1
、2
和 3
。因此,一个帖子包含每个这些值。
如何使用单个 SQL 查询实现此目的?
到目前为止,这是我的 SQL 查询:
"SELECT wposts.*, meta1.meta_value
FROM $wpdb->posts wposts, $wpdb->postmeta meta1
WHERE 1=1
AND wposts.post_type = 'footer_element'
AND wposts.post_status = 'publish'
AND wposts.ID = meta1.post_id
AND meta1.meta_key = 'footer_element_meta_alignment'
AND (meta1.meta_value = 1 OR meta1.meta_value = 2 OR meta1.meta_value = 3)
ORDER BY meta1.meta_value ASC";
然而,这会获取所有具有给定元值的元素,而不仅仅是最新的元素。
回答
回答了我自己的问题。
最佳答案
经过几个小时的努力,我找到了解决方案。
SQL
"SELECT *
FROM ( SELECT p.*, m.meta_value AS meta
FROM $wpdb->posts AS p
LEFT JOIN $wpdb->postmeta AS m
ON p.ID = m.post_id
WHERE m.meta_key = 'footer_element_meta_alignment'
AND p.post_status = 'publish'
ORDER BY m.meta_value ASC, p.post_date DESC) AS h
GROUP BY meta";
关于mysql - Wordpress 自定义 SQL 以获取具有给定元值的三个帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15199329/