2011-03-11 3 views
0

mysql은 순서대로 모드를 기록합니까?

id - name - age 
1 jonny  12 
2 al   16 
3 lory  22 

이제 우리는 로리, 알루미늄 (Al), 조니가 나이 주문이 테이블을 고려하십시오.

조니가 목록에있는 번호를 빠르게 선택할 수있는 방법이 있습니까?

이 순서를 고려하면 SELECT * FROM table ORDER BY age DESC, 조니는 3입니다.

뭔가 같은 : SELECT *, * rank(age) as position** FROM table WHERE id = 1

편집 :

나는> 내 기록을 나이가 레코드를 셀 수 : 그래서 쿼리가 될 :

SELECT COUNT(id) FROM table WHERE age > (SELECT age FROM table WHERE id = 1) as t1 

을 내가 수락 대답하지만 난 SQL 쿼리에서 vars를 사용하지 않는 것이 좋습니다.

답변

1
set @name = 'al'; 
select @name,count(*) + 1 as rank from 
    (select * from `table` where age > 
     (select age from `table` where [email protected]) order by age desc)as tab; 
1
SELECT 
rownum 
FROM 
    (
    SELECT @rownum:[email protected]+1 rownum, id,age,name 
    FROM (SELECT @rownum:=0) table 
    ORDER by age desc 
    ) temp 
WHERE 
    temp.name = 'jonny' 
+0

와우 나는 그것이 쉬울 것이라고 생각 – dynamic