MySQL(和WordPress):在一列中选择包含最高值的行,并按顺序排列

MySQL(和WordPress):在一列中选择包含最高值的行,并按顺序排列,mysql,wordpress,Mysql,Wordpress,这在我将数据移动到WordPress之前并不难,但我不确定如何获得相同的结果:一定数量的帖子(就像一期杂志)与文章一起,由人工排序。我想获得最新一期的所有文章,并根据其他领域进行订购 用我的旧桌子我可以 select title, issue, num from magazine where issue = ( select max(issue) from magazine ) order by num 使用WordPress,数据被分为两个表,一个用于文章,另一个用于元数据 我可以通过以下查

这在我将数据移动到WordPress之前并不难,但我不确定如何获得相同的结果:一定数量的帖子(就像一期杂志)与文章一起,由人工排序。我想获得最新一期的所有文章,并根据其他领域进行订购

用我的旧桌子我可以

select title, issue, num
from magazine
where issue = (
select max(issue)
from magazine
)
order by num
使用WordPress,数据被分为两个表,一个用于文章,另一个用于元数据

我可以通过以下查询获得最新一期的所有文章:

select post_title, post_date from wp_posts 
where ID in (select post_id 
             from wp_postmeta 
             where meta_key = 'myissue' and meta_value = (select max(meta_value + 0) 
                                                          from wp_postmeta 
                                                          where meta_key = 'myissue'));

问题是:如何按另一个自定义字段对结果排序?

如果查询没有返回很多结果,最简单的方法是使用临时表。 查询内容如下:

SELECT * FROM (
select post_title, post_date from wp_posts 
where ID in (select post_id 
             from wp_postmeta 
             where meta_key = 'myissue' and meta_value = (select max(meta_value + 0) 
                                                          from wp_postmeta 
                                                          where meta_key = 'myissue'))
) tmptbl ORDER BY post_date DESC;

我找到了解决方案:

select post_title, post_date, meta_value
    from wp_posts, wp_postmeta
    where ID in (
        select post_id
            from wp_postmeta
                where meta_key = 'myissue'
                and meta_value = (
                    select max(meta_value + 0)
                        from wp_postmeta
                            where meta_key = 'myissue'
                )
       )
    and ID = post_id
    and meta_key = 'myorder'
    order by meta_value + 0;

您希望按哪个字段排序?以上仅限于最新版本(meta_键“myissue”的最大值),如何在两个meta_键上排序整个数据库?通常,我会使用
orderbymyissue,myorder
,我在这里怎么做?
选择t3.post_title,I,o from(选择meta_值作为I,post_id from$wpdb->postETA,其中meta_键='myissue')作为t1,(选择meta_值作为o,post_id从$wpdb->postmeta,其中meta_键='myorder')作为t2,$wpdb->posts as t3,其中t1.post_id=t2.post_id和t2.post_id=id顺序为i+0 desc,o+0 limit 20;