码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL查找从小到大排列第90%个位置的数据

时间:2014-10-14 17:35:39      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:http   ar   sp   数据   2014   问题   html   ad   ef   

 

方法一(存储过程实现):

 

begin
DECLARE cnt INT DEFAULT 0;
select count(*) into cnt from user;
set cnt = round(cnt*0.9)-1;
select * from user limit cnt, 1;
end

 

 

方法二(直接查询,,只有查询权限的时候可以考虑):

这种方法也是解决mysql limit后面不支持变量的问题

SELECT COUNT(*) INTO @cnt FROM cmb_loading_count_20141013 WHERE ver>=1003002251;
SET @cnt = ROUND(@cnt*0.9)-1;
SET @stmt = ‘select loading_time from cmb_loading_count_20141013 where ver>=1003002251 order by loading_time asc limit ?,?‘;
PREPARE s1 FROM @stmt;
SET @end = 1;
EXECUTE s1 USING @cnt,@end;
DEALLOCATE PREPARE s1;

 

 

参考:

http://www.2cto.com/database/201309/241093.html

 

MYSQL查找从小到大排列第90%个位置的数据

标签:http   ar   sp   数据   2014   问题   html   ad   ef   

原文地址:http://www.cnblogs.com/mynona/p/4024532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!