设为首页 加入收藏

TOP

关于mysql排序的问题实例解析
2014-11-23 23:37:34 来源: 作者: 【 】 浏览:6
Tags:关于 mysql 排序 问题 实例 解析

关于 mysql排序的问题实例解析
今天面试一家公司, 问了一个关于取出分数排名的问题:
如表结构如下:
name
score
zhang
50
wang
30
li
80
wu
20
要求按score输出排名。
这个问题我以前做过的, 要求在纸上写出来,我说有个电脑一下就出来了...
(要求在纸上写sql 真坑爹啊)
于是回家后不到一分钟在电脑上就写出来了 ..., 备忘如下:
SELECT @i:=@i+1 ,name,score FROM `tb`, (select @i:=0) as i ORDER BY score desc;
结果输出
@i:=@i+1 name score
1 li 80
2 zhang 50
3 wang 30
4 wu 20
====================================================
让别人在纸张上写程序, 只能发挥一半的功力啊, 面试者要反思啊。。。
=================补充分割线=====================

此题的另外一个解法:
set @i:=0; www.2cto.com
select if(ISNULL(@i),@i:=1,@i:=@i+1) , name, score from tb order by score desc ;

需两条sql,第一条把@i 重置为0(不重置的话,下次运行时@i会用上一次的结果), 第二条再取排名

看实际应用了。。。

作者 spamer
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sql 2005连接SQL2000服务器18456.. 下一篇mysql比较时间

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: