mysql查询从每列中获取最新的5条记录

时间:2018-03-17 11:03:22

标签: php mysql

我是Php和Mysql的新手。我有一个名为ut_posts的表有多列。我想根据列状态查询每列的最新5条记录。下面是我查询记录的查询。但似乎没有用。

SELECT * FROM( 
SELECT * FROM ut_posts WHERE political_news = 1 ORDER BY id DESC LIMIT 0,5
UNION ALL 
SELECT * FROM ut_posts WHERE cinema_news= 1 ORDER BY id DESC LIMIT 0,5
UNION ALL
SELECT * FROM ut_posts WHERE latest_videos = 1 ORDER BY id DESC LIMIT 0,5 
)  a 

但我收到的错误

Error Code: 1221
Incorrect usage of UNION and ORDER BY
My requirement is I want to display latest 5 records from each column.

如何实现这一目标,我们将非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

您可以使用:

(SELECT * FROM ut_posts WHERE political_news = 1 ORDER BY id DESC LIMIT 0,5)
UNION ALL 
(SELECT * FROM ut_posts WHERE cinema_news= 1 ORDER BY id DESC LIMIT 0,5)
UNION ALL
(SELECT * FROM ut_posts WHERE latest_videos = 1 ORDER BY id DESC LIMIT 0,5);

答案 1 :(得分:1)

SELECT * FROM
( SELECT * FROM ut_posts WHERE political_news = 1 ORDER BY id DESC LIMIT 0,5) t1 
UNION
SELECT * FROM(SELECT * FROM ut_posts WHERE cinema_news= 1 ORDER BY id DESC LIMIT 0,5) t2 
UNION
SELECT * FROM( SELECT * FROM ut_posts WHERE latest_videos = 1 ORDER BY id DESC LIMIT 0,5 ) t3