我有一个表中的几百条记录,我需要得到他们的最后50个,但我需要25名男性和25名女性。有一个性别栏。我只是无法弄清楚如何进行查询。我可以得到一些帮助吗?不知道如何写这个查询
回答
(SELECT * FROM table WHERE gender = 'M' ORDER BY id DESC LIMIT 25)
UNION
(SELECT * FROM table WHERE gender = 'F' ORDER BY id DESC LIMIT 25)
这将工作,我猜。对于ID部分的订单,我假设您有一个自动增量ID列,使得最后的添加了具有最高ID的记录。
总脑梗塞。谢谢。 – 2012-04-02 15:25:49
请注意,如果没有'ORDER BY',这可能不会按照要求返回最后的50_。 – 2012-04-02 17:31:47
不够公平,补充完成答案。 – hoppa 2012-04-03 10:14:03
如果您确切需要50个,请使用UNION
,其中每个最后25个。这假设你有一些自动递增的id
列,它按降序排序以检索每个性别的最新25个。
为了对UNION
的单个组件使用ORDER BY
和LIMIT
,MySQL期望这些组件被包含在()
中。
(SELECT * FROM tbl WHERE gender='F' ORDER BY id DESC LIMIT 25)
UNION ALL
(SELECT * FROM tbl WHERE gender='M' ORDER BY id DESC LIMIT 25)
注意:顺便说一下,我用SELECT *
这里为简便起见,但你应该永远实际上做,在一个UNION
查询。相反,请明确列出所需的列,并确保它们在UNION
的两个部分中的顺序相同。
像:
(SELECT col1, col2, coln FROM tbl WHERE gender='F'....)
UNION ALL
(SELECT col1, col2, coln FROM tbl WHERE gender='M'....)
我刚想到这里迅速,无担保。
SELECT * FROM table WHERE gender = 'male' ORDER BY ID DESC LIMIT 25
UNION ALL
SELECT * FROM table WHERE gender = 'female' ORDER BY ID DESC LIMIT 25
基本上,它得到最后25名男性和最后25名女性,并将结果结合在一起。
有没有这样的概念,除非你有另一列,你可以使用ORDER BY
。
我建议写2个查询,仅限于男性,另一个仅限于女性。
然后使用一个顺序,所以有一个'最后'的设置。
然后翻转(使用DESC
),所以他们是第一反而。
然后使用LIMIT
子句来选择你想要的数字。
然后终于,UNION
他们在一起。
你们太好了...... :) – Randy 2012-04-02 14:54:58
尝试使用两个查询,一个抓住25个最新的男性,一个抓住25个最新的女性。然后只是连接结果。
SELECT * FROM males LIMIT 25 ORDER BY DESC
SELECT * FROM females LIMIT 25 ORDER BY DESC
- 1. 我不知道如何编写查询
- 2. 我不知道这个查询
- 3. 不知道如何编写一个查询通过
- 4. 不知道如何写一个简单的查询
- 5. sql查询帮助,不知道如何定义这个
- 6. 如何写这个查询
- 7. 我不知道如何查询
- 8. 不知道如何制定此查询
- 9. Linq查询不知道如何实现
- 10. 我不知道如何在SQL查询
- 11. 我不知道如何写这个“如果陈述”
- 12. 不知道如何编写复杂的SQL查询
- 13. 不知道如何写查询的一部分
- 14. 不知道如何在T-SQL这样做“合并”型查询
- 15. 我不知道如何做到这一点查询SQL
- 16. 想知道如何使这个SQL(SQLite3)查询更有效
- 17. 我会如何编写equiv。在轨道中的这个查询?
- 18. 我不知道如何处理这个
- 19. 命名查询不知道
- 20. 试图写一个查询,但不知道该怎么办
- 21. 我不知道这个SQL查询是什么
- 22. Rails:使这个查询数据库不知道...?
- 23. 如何编写这个MySQL查询? (datetime)
- 24. 如何写sql查询到这个?
- 25. 如何写这个SQL查询中JPQL
- 26. MySQl。你将如何写这个查询
- 27. 如何编写这个linq查询?
- 28. 如何编写这个Neo4j查询?
- 29. 如何编写这个xpath查询?
- 30. 如何编写这个嵌套查询?
请提供表格结构。如何对记录进行排序? – Devart 2012-04-02 14:54:27