如何限制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%。
答案 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重复的问题