按MySQL中所有行的百分比限制
如何限制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%
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]: