2013-06-18 124 views
0

我有表包含一些数据,只是我想显示该表中的前10名和最后一列我想显示用户的排名谁登录到应用程序。获得数据库前10名记录和从当前登录用户记录

例如

rank | name |school 

1  aaa  JUU 
2  bbb  AL 
3  ccc  TN 
.  ..... ...... 

8  xxx  KAR 
9  yyy  PUN 
10  zzz  KOL 
31  NNN  DEL 

在最后一排我想显示谁登录到应用程序,例如用户等级。这里的学生“NNN”在应用程序logedin和他的排名是31.
请帮助我。

+0

您使用的是MySQL还是Oracle? PL/SQL是Oracle对SQL的扩展,这就是我问这个问题的原因。你的标签让我有些困惑。 – Rachcha

回答

0

您可以使用:

SELECT * -- or whatever is your selection 
    FROM mytable 
    WHERE rank <= 10 
    LIMIT 10 
UNION 
    SELECT * 
    FROM mytable 
    WHERE name = 'lll' -- Provided name is unique 
ORDER BY rank; 

Fiddle Demo

+0

谢谢:)其工作 – user2497599

+0

只是为了您的信息 - 它是一个很好的习惯,以upvote答案或问题,你觉得有用。它也会为你赢得一枚铜牌! http://stackoverflow.com/help/badges/6/supporter – Rachcha

0
  1. 选择排名前10位的排名
  2. 工会与当前用户
  3. 利用当前用户不是已经在10 ...

select rank, name, school from ranks order by rank asc limit 10 
union 
select rank, name, school from ranks where name = ?? 
    and name not in (select name from ranks order by rank asc limit 10)