我有一個表中的幾百條記錄,我需要得到他們的最後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