mysql - Wordpress 自定义 SQL 以获取具有给定元值的三个帖子

标签 mysql sql wordpress greatest-n-per-group

我有一堆带有元键 footer_element_meta_alignment 的自定义帖子类型页脚元素。现在,我正在尝试获取三个最新的帖子,meta_values123。因此,一个帖子包含每个这些值。

如何使用单个 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/

相关文章:

php - 通过 JSON 发送 HTML 代码

mysql - 如何更新mysql数据库中的外键值

Wordpress 中的 jQuery CSS 冲突

jquery - 语法错误,表达式无法识别: [object Object][rel ='x' ]

php - 我正在尝试使用 $_GET 更改 css 属性得到错误的结果

mysql - 当不同名称的数量小于 200 mysql 时获取名称

mysql - 自连接mysql复杂查询

java - 换行符\n 给出 "java.sql.SQLException: ORA-00911: invalid character\n"Oracle 11g

sql - MySQL:在全文搜索中查找多个单词 - 仅完全匹配

mysql - 使用别名进行 SQL 查询并重新使用它。它是如何工作的?