回答
用途:
SELECT x.feedid
FROM (SELECT t.feedid,
CASE WHEN @feed != t.feedid THEN @rownum := 1 ELSE @rownum := @rownum + 1 END AS rank,
@feed := t.feedid
FROM TABLE t
JOIN (SELECT @rownum := NULL, @feed := 0) r
ORDER BY t.feedid) x
WHERE x.rank <= 3
ORDER BY x.feedid
LIMIT 50
什麼是不明確的是希望返回你的細節 - 所有行的表格,或只是feedid。
您是否嘗試過使用子選擇和限制?
喜歡的東西
SELECT *
FROM Table t
WHERE ID IN (SELECT ID FROM @Table WHERE FEED_ID = t.FEED_ID LIMIT 3)
LIMIT 500
我不認爲這會子選擇工作(SELECT ID FROM @Table WHERE FEED_ID = t.FEED_ID LIMIT 3) 將返回1 FEED_ID – Salil 2010-04-07 05:32:25
的只有三個ID。你必須考慮到這是在where子句中的子選擇中完成的,因此它將是第1個3 ** PER ** feedid – 2010-04-07 05:42:01
這不起作用。不幸的是,MySQL在子查詢中不支持LIMITS。 – 2010-04-07 15:51:52
在Transact SQL如果應用在這裏你可以使用TOP語句,不知道...
你可以用存儲過程的幫助下做到這一點。
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_feed`()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a INT;
DECLARE cur1 CURSOR FOR SELECT id FROM test.id LIMIT 50;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO a;
IF NOT done THEN
SELECT * FROM feed_id WHERE id=a LIMIT 3;
END IF;
UNTIL done END REPEAT;
CLOSE cur1;
END$$
DELIMITER;
- 1. 如何爲每個外鍵選擇有限的行數? (以及如何指定關係)
- 2. 動態極限選擇爲外鍵
- 3. 限制ModelAdmin中的外鍵選項返回「選擇一個有效的選擇」
- 4. 每個不同的外鍵值選擇最新的行
- 5. 爲每個不同的外鍵選擇第二高的值
- 6. 如何爲每個鍵值選擇具有最新時間戳的行?
- 7. mysql對外鍵的選擇限制
- 8. 爲每個數組值選擇一行
- 9. 如何爲每個組選擇固定數量的行?
- 10. data.table選擇每個組的第一行限制爲n-1列?
- 11. 如何限制Django的外鍵選擇raw_id_field
- 12. 如何選擇有限數量的組
- 13. MySQL選擇多個外鍵
- 14. 爲每組變體選擇有限的記錄數
- 15. MYSQL插入..選擇 - 具有外鍵的多個行和表?
- 16. 如何爲SQL中的每個組選擇一個最大行
- 17. 根據用戶定義的限制選擇外鍵的數量
- 18. 如何爲SQL中的結果集中的每一行選擇額外的行?
- 19. 如何選擇一個點,每行
- 20. 如何選擇每行
- 21. 選擇外鍵指向特定主鍵的所有行?
- 22. 如何選擇外鍵的選項更好的數據庫
- 23. 如何爲沒有UNION的子項選擇一個父行和額外的行?
- 24. 限制每個表格行的複選框選擇
- 25. Django - 如何限制外鍵選擇到另一個模型中的ManyToMany字段
- 26. 選擇每個外鍵類型的最高記錄
- 27. django admin表格行限制外鍵選擇字段
- 28. MySQL,根據外鍵選擇多行作爲一個
- 29. 如何使選擇有一個範圍內的每個數字
- 30. 除了第一個表格以外,每個表格上的第一行除外,每行都有jQuery選擇器
這對我很有用,但是feed_id = 1的行沒有出現,我做錯了什麼? – 2010-04-08 21:02:49
@Keyne:查詢中沒有任何內容排除feedid - 您確定有id值的記錄嗎?接下來我要看的是如果您忘記了ORDER BY - 這對於查詢來說是非常重要的 – 2010-04-08 21:36:01
Actualy feed_id 1沒有問題,問題在於第一行,例如,我刪除了feed_id = 1的所有行,並且當我再次運行查詢時,feed_id 2不顯示,這是行集合中的第一個。 – 2010-04-09 00:36:43