C++ 技术中心

   :: 首页 :: 联系 ::  :: 管理
  160 Posts :: 0 Stories :: 87 Comments :: 0 Trackbacks

公告

郑重声明:本BLOG所发表的原创文章,作者保留一切权利。必须经过作者本人同意后方可转载,并注名作者(天空)和出处(CppBlog.com)。作者Email:coder@luckcoder.com

留言簿(27)

搜索

  •  

最新随笔

最新评论

评论排行榜

1.原表
mysql> select * from t_value;
+----+------------+
| id | value      |
+----+------------+
|  1 |       1212 |
|  1 |    1234342 |
|  1 |         12 |
|  1 | 1243242341 |
|  2 |   43242341 |
|  2 |      43241 |
|  2 |    4333331 |
|  2 |          4 |
|  2 |  432456666 |
+----+------------+
9 rows in set
2. 期望以上id为1,2的分别只保留两条
3.新建一个临时表,字段同上,并新增一个num字段为自增。并插入
insert into t_tmp(id,value) select id,value from t_value order by id;
4.于是t_tmp如下:
mysql> select * from t_tmp;
+----+------------+-----+
| id | value      | num |
+----+------------+-----+
|  1 |       1212 |  79 |
|  1 |    1234342 |  80 |
|  1 |         12 |  81 |
|  1 | 1243242341 |  82 |
|  2 |   43242341 |  83 |
|  2 |      43241 |  84 |
|  2 |    4333331 |  85 |
|  2 |          4 |  86 |
|  2 |  432456666 |  87 |
+----+------------+-----+

5.再通过以下SQL查出
mysql> select t_tmp.id,t_tmp.value,t_tmp.num from t_tmp
left join(select num,id,value from t_tmp   group by id) as t
on t.id=t_tmp.id
where t_tmp.num<t.num+2;
+----+----------+-----+
| id | value    | num |
+----+----------+-----+
|  1 |     1212 |  79 |
|  1 |  1234342 |  80 |
|  2 | 43242341 |  83 |
|  2 |    43241 |  84 |
+----+----------+-----+
posted on 2014-03-26 15:16 C++技术中心 阅读(1182) 评论(0)  编辑 收藏 引用 所属分类: MYSQL

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理