佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1397|回复: 7

简单的 Mysql 输出语句 , 高手请进 ^^

[复制链接]
发表于 12-1-2013 05:58 PM | 显示全部楼层 |阅读模式
这是例子
我的 table 里面有2个column,3个row,数据是这样的 :
{名字:兴杰 ,薪水:5千} , {名字:张三 ,薪水:10千},{名字:李四 ,薪水:15千}
我用 select * from table order by 薪水
排列后想为数据增加一个 column 排名 , 如:
{名字:李四 ,薪水:15千 ,排名:第1名},{名字:张三 ,薪水:10千 ,排名:第2名},{名字:兴杰 ,薪水:5千 ,排名:第3名}
我改如何写 sql 语句呢 ?
老师们教教我吧 ^^ 万分感激丫!
回复

使用道具 举报


ADVERTISEMENT

发表于 16-1-2013 01:12 PM | 显示全部楼层
SELECT    名字, 薪水, @rank := @rank + 1 AS 排名
FROM       table t, (SELECT @rank := 0) r
ORDER BY  薪水;
回复

使用道具 举报

发表于 16-1-2013 07:03 PM | 显示全部楼层
sianghung 发表于 16-1-2013 01:12 PM
SELECT    名字, 薪水, @rank := @rank + 1 AS 排名
FROM       table t, (SELECT @rank := 0) r
ORDER B ...

原来mysql能够这样做的呀。
受教了~
回复

使用道具 举报

发表于 17-1-2013 09:57 AM | 显示全部楼层
这是MySQL的,SQL Server 有别的写法。。其实 sql 可以做很多很多,学会了帮人改写一个 script 或 stored proc 都可以赚几千块了 =D
回复

使用道具 举报

 楼主| 发表于 21-1-2013 01:06 AM | 显示全部楼层
万分感谢 ! 受教了!
回复

使用道具 举报

 楼主| 发表于 21-1-2013 01:17 AM | 显示全部楼层
sianghung 发表于 16-1-2013 01:12 PM
SELECT    名字, 薪水, @rank := @rank + 1 AS 排名
FROM       table t, (SELECT @rank := 0) r
ORDER B ...

对了 ,在请教你一下

如果我想输出的 是  第 "1"名 , 第 "2" 名 , 我的"第"和"名" 要加在哪里?

SELECT name, salary, @rank := @rank + 1 AS ranking FROM table1 ,(SELECT @rank := 0) r ORDER BY  salary;

回复

使用道具 举报

Follow Us
 楼主| 发表于 21-1-2013 01:20 AM | 显示全部楼层
set @a=0;
select concat('第',(@a:=@a+1),'名') as ranking ,name,salary from table1 order by salary desc

如果是这样写的话,有更好的吗?
回复

使用道具 举报

发表于 21-1-2013 10:13 AM | 显示全部楼层
xin_yao 发表于 21-1-2013 01:20 AM
set @a=0;
select concat('第',(@a:=@a+1),'名') as ranking ,name,salary from table1 order by salary d ...

应该就只能这样了。。
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 6-10-2025 03:28 PM , Processed in 0.244049 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表