How to select a limited amount of rows for each foreign key?

前端 未结 4 795
忘掉有多难
忘掉有多难 2021-01-06 10:19

I have this table:

id
feed_id
...

Let\'s say that I have 500 rows and I want to select 3 entries for each feed_id? And 50 as total limit.

4条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-06 10:30

    You can do this with help of stored procedure.

    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;
    

提交回复
热议问题