我想找出 10 条按某种顺序排列好的记录,并以 foo 为 10 条记录的中心点。应该如何操作呢?基本语句类似:select * from tbl order by win limit 10关键在于如何让这 10 条记录以 id=foo 记录为中间那一个行?
解决方案 »
- delphi 中 MyStoredProc存储过程 输出函数,
- mysql触发器的问题 在线等
- MySQL提示1135-Can't create a new thread (errno12)
- 如何创建数据库多对多关系中的有业务需求的连接表
- 求tab1表里没有在tab2表的记录
- 如何修改mysql的Server Model某个选项的值而不改变其它的值
- MySQL执行count语句为什么这么慢呢?谁能帮我看看是什么原因
- 如何在既有配置里增大innodb_buffer_pool_size参数的值
- 数据库树结构结果集合遍历性能问题
- 请问为什么mysqlcc不能更改表结构(没用命令)?
- 如何用sql语句更新数据表中某字段的数据类型?
- 在MySql中,怎么调用有输出参数的存储过程,并得到输出参数的值呢???
create temporary table tmp (id int not null auto_increment primary key,其他tbl的字段) select * from tbl where id = 'foo' order by win desc;select ceiling(max(id) + min(id)/2+1) from tmp into @v_id;
select * from tmp where id >=@v_id limit 5
union all
select * from tmp where id < @v_id limit 5;
(
select * from tbl where win <= (select min(win) from tbl where id='foo') order by win desc limit 6
union
select * from tbl where win > (select min(win) from tbl where id='foo') order by win limit 5
) as a
order by win;[align=center]==== 思想重于技巧 ====
[/align]
1-10 中间的那个数是几?上面SQL 是 11 条记录以 id=foo 记录为中间[align=center]==== 思想重于技巧 ====
[/align]
要用store precudure 了,不是仅用SQL能做到了, 不象oracle中有rowno[align=center]==== 思想重于技巧 ====
[/align]