小编典典

MySQL:限制为记录量的百分比吗?

mysql

假设我有一个值列表,像这样:

id  value
----------
A   53
B   23
C   12
D   72
E   21
F   16
..

我需要此列表中前10 的内容-我尝试过:

  SELECT id, value 
    FROM list
ORDER BY value DESC
   LIMIT COUNT(*) / 10

但这是行不通的。问题是在执行查询之前,我不知道记录的数量。有任何想法吗?


阅读 229

收藏
2020-05-17

共1个答案

小编典典

我发现的最佳答案:

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

将10更改为其他百分比。

2020-05-17