Mysql - LIMIT by Percentage?

后端 未结 2 1351
日久生厌
日久生厌 2020-12-10 15:16

Say I define an alias \'count\' in my Select Query and I want to limit the amount returned to count / 5 (or 20% of the table).

How can I do this? Mysql doesn\'t s

相关标签:
2条回答
  • 2020-12-10 15:35

    the LIMIT clause can takes 2 arguments and must be integers constants.

    you can try something like this

    SET @skip=1; SET @numrows=(select count(*) div 5 from tbl );
    PREPARE STMT FROM 'SELECT * FROM tbl LIMIT ?, ?';
    EXECUTE STMT USING @skip, @numrows;
    
    0 讨论(0)
  • 2020-12-10 15:46

    Correct. The LIMIT clause takes an offset and a count of rows, not a percentage. You're thinking of Microsoft SQL Server, which supports SELECT TOP 20 PERCENT ... (note that neither LIMIT or TOP are specified in standard SQL).

    I would do this in two queries:

    SELECT COUNT(*) FROM MyTable WHERE ...conditions...
    
    SELECT * FROM MyTable WHERE ...conditions... ORDER BY ...order... LIMIT ?
    

    Replace the parameter ? with the count / 5.

    You don't have to solve every problem in a single query.

    0 讨论(0)
提交回复
热议问题