2013-10-08 2 views
1

다음과 같은 사용자 테이블이 있습니다. 다음 두 필드가 고정되어 있습니다. userId는 기본 키입니다.mysql에 행 번호 표시

userId name 
898  abc 
900  xyz 
902  rrr 
904  wer 

제가 userid 다음 행 번호로 표시한다 발생할 경우 특정 페치. 예를 들어 userid902이면 결과에 3이 표시되어야합니다.

SQL 쿼리를 작성하는 방법은 무엇입니까?

+0

PHP 작동입니까? –

+0

일반 MySQL 쿼리 –

+0

아래에 내 대답을 추가했습니다 –

답변

0

set @row_num = 0; 
SELECT user_id,name, @row_num := @row_num + 1 as index FROM tablename 
ORDER BY user_id desc; 
+0

추가 안 함 더 이상 필드가 없습니다. 위의 userId와 이름은 고정되어 있습니다. –

+0

@ahamedsakir 답변에 약간의 변경을 가했습니다. 이 시도. 이 경우 –

1

여기이

SET @a:=0; 

    SELECT @a:[email protected]+1 serial_number, 
      userId, name 
    FROM users; 

하려고 시도하면 그냥 얻을 수있는 테이블에 자동 증가로 PK를 추가해야합니다 있지만 SQL Fiddle

NB-입니다 일련 번호가 있지만 테이블에 인덱스를 추가하여 레코드를 더 빨리 가져올 수 있습니다.

+0

이 항상 1을 반환합니다. SELECT @a : = @ a + 1 serial_number, userId, 이름 사용자로부터 (SELECT @a : = 0) as a userId = 902; 그것은 우리가 단지 쿼리의 출력에 serial_number를 추가하기 때문에 ..... –

+0

을 반환해야합니다. 원하는 것은 데이터베이스에 추가 열이 필요합니다 너는 그다지 원하지 않는 –

+0

을 비교하는 동안 serial_number를 반환하지 않아야하는 3 –