mysql 查询某张表的前25%数据,不是前25%的行数

mysql 查询某张表的前25%数据,不是前25%的行数,会写的大佬帮帮忙,小弟感激不尽

 SELECT A.* FROM
(
SELECT ROW_NUMBER() OVER ( ORDER BY 排序字段) ROWNUMBER,* FROM 表
) A WHERE ROWNUMBER*4<= (SELECT COUNT(1) FROM 表)
 SELECT A.* FROM
(
SELECT @rownum:=@rownum+1 AS rownum, 表.*
FROM (SELECT @rownum:=0) r, 表
) A WHERE rownum*4<= (SELECT COUNT(1) FROM 表)

如果问题得到解决,麻烦点下我的回答右边的采纳,谢谢

我没有环境,lz你试试看,mysql不支持行号,用变量代替。应该可以。谢谢。

用order 倒叙字段
select * from user where 1=1 order by age desc
这个是在用户表中,用年龄倒序的
去3行数据 mysql的 select * from user where 1=1 order by age desc limit 3
去3行数据 oracle的 select * from user where 1=1 order by age desc rownum 3

Drop procedure if exists fun
delimiter ¥
create procedure fun()
begin
declare sum,hhsum integer default 0;
select count(*) into sum from 表名;
set hhsum=sum/4;
select * from 表名 limit hhsum;
end¥
delimiter;
call fun();
Call fun();