询问一个简单的SQL语句~

来源:百度知道 编辑:UC知道 时间:2024/06/06 10:28:18
大家好,小弟想询问一个SQL语句~数据库为MYSQL
表结构
id name sex
1 nino 1
2 noni 0
3 abcd 1
4 sky 0
5 kkkk 0
6 waha 1
7 lala 0
问题是,一页显示5条信息,但第一条信息的ID是指定的,剩余的4条信息是按ID倒序排,比如要获取ID=5的信息,然后再把剩余4条信息排序,最后显示出来的是
id name sex
5 kkkk 0
7 lala 0
6 waha 1
4 sky 0
3 abcd 1
也就是两条语句
select * from table where id = 5;
select * from table order by id desc;
如何能使用一个语句就实现上面的显示结果呢,谢谢,解答后立即给分,谢谢~
谢谢回答,但是输出的结果为
id name sex
5 kkkk 0
1 nino 1
2 noni 0
3 abcd 1
4 sky 0
6 waha 1
7 lala 0
剩余的没有倒序排~

如果你使用的是MySQL数据库,按要求的SQL可以写成这样:

(select * from table where id=5)
union all
(select * from table where id<>5 order by id desc limit 4);

如果是用在程序中的话,将条件里的id=5和id<>5中的5换成传递进来的变量值就可以了。

当然了,如果你需要将所有结果都查出来后再在Web页面上分页显示的话,将 limit 4 去掉,将查询出来的结果在Web页面上实现分页就可以了。

(select * from table where id=5)
union all
(select top 4 * from table where id<>5 order by id desc );

这个简单呢,你调一下排列顺序的方式就行了.

select * from table where id between 5-2 and 5+2 order
by (select case id when 5 then 5+3 else id end) desc;

解释:5你用你的变量替代,自己定义

desc就是降序,如上面你给的
3,4,5,6,7
排序时,
5的排序数=5+3=8,
其它的为id值
3的排序数=3,
4的排序数=4,
6的排序数=6,
7的排序数=7,
现在用排序数按desc即降序排序
5排序数由于为8,值最大,排第一,
7排序数值为第二大,排第二,
6排序数值为第三大,排第三,
4排序数值为第四大,排第四
3排序数值为第五大,排第五

结果输出:5,7,6,4,3

由于没用到你的数据.如果还不懂发信息给我.