根据自定义数组位置订购帖子

时间:2016-07-18 07:33:40

标签: php mysql wordpress

我想根据自定义提交的帖子列表。

这里我有9个不同的3个位置(中间,顶部,底部)

Post ID    title      position
1          Post1      Top
2          Post2      Bottom 
3          Post3      Top
4          Post4      Bottom 
5          Post5      Middle
6          Post6      Bottom 
7          Post7      Top
8          Post8      Bottom 
9          Post9      Top
10         Post10     Middle

现在我希望像这个订单一样发帖

5          Post5      Middle
2          Post2      Bottom 
1          Post1      Top
10         Post10     Middle
4          Post4      Bottom
3          Post3      Top
6          Post6      Bottom
7          Post7      Top
8          Post8      Bottom
9          Post9      Top  

所以首先是中间,底部,顶部,所以我想要像这个,中间,底部和顶部的邮购。我不希望完全中间位置然后是底部然后顶部。

我想列出获得中,下,上的前3个帖子。我需要这个列表wordpress,任何人都可以知道,我该怎么做这个任务

由于 CSR

1 个答案:

答案 0 :(得分:1)

您可以使用如下查询:

SELECT PostID, title, position
FROM (
   SELECT PostID, title, position,
          @grp := IF(@pos = position, @grp + 1,
                     IF(@pos := position, 1, 1)) AS grp
   FROM mytable
   CROSS JOIN (SELECT @grp := 0, @pos := '') AS vars
   ORDER BY position, title) AS t
ORDER BY grp, FIELD(position, 'Middle', 'Bottom', 'Top')   

Demo here