查看: 1397|回复: 7
|
简单的 Mysql 输出语句 , 高手请进 ^^
[复制链接]
|
|
这是例子
我的 table 里面有2个column,3个row,数据是这样的 :
{名字:兴杰 ,薪水:5千} , {名字:张三 ,薪水:10千},{名字:李四 ,薪水:15千}
我用 select * from table order by 薪水
排列后想为数据增加一个 column 排名 , 如:
{名字:李四 ,薪水:15千 ,排名:第1名},{名字:张三 ,薪水:10千 ,排名:第2名},{名字:兴杰 ,薪水:5千 ,排名:第3名}
我改如何写 sql 语句呢 ?
老师们教教我吧 ^^ 万分感激丫!
|
|
|
|
|
|
|
|
发表于 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;
|
|
|
|
|
|
|
|

楼主 |
发表于 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 ...
应该就只能这样了。。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|