MySQL(和WordPress):在一列中选择包含最高值的行,并按顺序排列
这在我将数据移动到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,数据被分为两个表,一个用于文章,另一个用于元数据 我可以通过以下查
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;
。