用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > mysql教程

mysql分组 排序取每条记录中最后更新记录

时间:2015-01-23  来源:西部数据  作者:西部数据

本文章来给大家介绍关于mysql分组 排序取每条记录中最后更新记录,有需要了解的朋友可进入参考参考。

以下是 test 表,测试sql,代码如下:

  1. CREATE TABLE IF NOT EXISTS `test` ( 
  2. `id` int(10) unsigned NOT NULL auto_increment, 
  3. `install` int(10) unsigned NOT NULL
  4. `dayint(10) unsigned NOT NULL
  5. `aid` int(10) unsigned NOT NULL
  6. PRIMARY KEY (`id`) 
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ; 
  8.  
  9.  
  10. INSERT INTO `test` (`id`, `install`, `day`, `aid`) VALUES 
  11. (1, 1232, 20080808, 1), 
  12. (2, 2321, 20080809, 2), 
  13. (3, 1236, 20080810, 3), 
  14. (5, 4212, 20080809, 1), 
  15. (6, 2312, 20080810, 1), 
  16. (7, 1432, 20080811, 1), 
  17. (8, 2421, 20080808, 2), 
  18. (9, 4245, 20080811, 2), 
  19. (10, 5654, 20080810, 2), 
  20. (11, 412, 20080808, 3); 

sql语句,代码如下:

  1. SELECT A.* FROM test A, 
  2. (SELECT aid, MAX(day) max_day FROM test GROUP BY aid) B 
  3. WHERE A.aid = B.aid AND A.day = B.max_day 
  4. ORDER BY a.install DESC 

mysql实现分组排序并赋予序号的存贮过程,代码如下:

  1. drop procedure set_rank; 
  2.  create procedure set_rank() 
  3.  begin 
  4.  set @i=1; 
  5.  set @number=(select count(1) from suppliers_performance); 
  6.  update suppliers_performance set score_rank=0; 
  7.  
  8.  while @i<@number 
  9.  do 
  10.  begin 
  11.      update suppliers_performance set score_rank=@i where id in (select id from (select id from suppliers_performance where score_rank=0 order by score limit 1) b);  --phpfensi.com 
  12.      set @i=@i+1; 
  13.  end
  14.  end WHILE; 
  15.  end;
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门