我是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.
如何实现这一目标,我们将非常感谢任何帮助。
答案 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