Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按MySQL中所有行的百分比限制_Mysql - Fatal编程技术网

按MySQL中所有行的百分比限制

按MySQL中所有行的百分比限制,mysql,Mysql,如何限制MySQL中所有行的百分比 我试着这样做: SELECT * FROM table_name ORDER BY column_name ASC LIMIT (SELECT ROUND(COUNT(id)*0.25) FROM table_name) 我还尝试将查询SELECT RONDCOUNTID*0.25从表_name保存到变量,但问题是相同的。我知道限制只需要数字,但我不知道表中有多少行可以给出限制的具体数字。如果有限制是不可能的,如何做到无限制 我只需要选择表中所有行的前25%

如何限制MySQL中所有行的百分比

我试着这样做:

SELECT * FROM table_name
ORDER BY column_name ASC
LIMIT (SELECT ROUND(COUNT(id)*0.25) FROM table_name)
我还尝试将查询SELECT RONDCOUNTID*0.25从表_name保存到变量,但问题是相同的。我知道限制只需要数字,但我不知道表中有多少行可以给出限制的具体数字。如果有限制是不可能的,如何做到无限制

我只需要选择表中所有行的前25%。

您可以使用以下代码:

SELECT*
FROM    (
    SELECT list.*, @counter := @counter +1 AS counter
    FROM (select @counter:=0) AS initvar, list
    ORDER BY value DESC   
) AS X
where counter <= (10/100 * @counter);
ORDER BY value DESC

引用重复问题

考虑到许多更好的方法,上面的查询效率非常低,如Vignesh的评论中所述。这是Vignesh链接的重复问题的公认答案的复制粘贴。谢谢。它起作用了,但我需要对这段代码稍加修改。请看一下:[堆栈溢出][1][1]: