2016-11-14 61 views
0

我想使用mysql获取10条记录,其中5条记录具有性别=男性,5条记录具有性别=女性,ID为DESC。使用mysql获取10组记录和两组记录

我应该为此需要两个分离查询吗?

SELECT * FROM `users` where gender='male' ORDER BY id DESC LIMIT 5 
SELECT * FROM `users` where gender='female' ORDER BY id DESC LIMIT 5 
+3

你可以使用'union'来组合这两个查询 – 1000111

+0

在MySQL中编写一个使用聚合函数返回每个聚合中顶级* n *行的查询是可能的,但是很困难。所以,对于性别你可以和UNION做得很好。如果你想要每个邮政编码中的前五行......更难。 –

回答

0
SELECT * FROM `users` where gender='male' ORDER BY id DESC LIMIT 5 
union 
SELECT * FROM `users` where gender='female' ORDER BY id DESC LIMIT 5 

将返回5个用户可以通过ID下令为男性,5个用户可以通过ID下令,是导致10条共女性。

这就是你所追求的?

+0

好吧,显然这会导致语法错误。但是,是的,正确的主意。 – Strawberry