限制MySQL中所有行的百分比

时间:2014-02-03 16:26:24

标签: mysql

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

我正在尝试这个:

SELECT * FROM table_name
ORDER BY column_name ASC
LIMIT (SELECT ROUND(COUNT(id)*0.25) FROM table_name)

我还尝试将查询SELECT ROUND(COUNT(id)*0.25) FROM table_name保存到变量,但这是同样的问题。我知道LIMIT只需要数字,但我不知道表格中有多少行给LIMIT赋予特定的数字。如果LIMIT无法实现,如何在没有LIMIT的情况下执行此操作?

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

1 个答案:

答案 0 :(得分:-2)

您可以使用此代码:

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

引自this重复的问题