2012-10-07 5 views
0
을 찾아

가능한 중복 :
MySQL get row position in ORDER BYMYSQL 주문 후 주문 번호

I 사용자의 테이블을 가지고 있고 나는 열 이름이 왕관을 주문하고 싶다. 나는 그들이 목록에있는 곳을 찾고 싶었지만 그것을하는 방법에 대해 완전히 확신하지 못했습니다. 나는 구글 그것을 시도했지만 입력해야하는지에 완전히 확실하지 않은 (크라운 INT 입력이 있습니다.)

그래서 내가 첫 번째 줄이 있습니다. 어떻게 다음 위치를 사용자를 찾을 것

mysql_query("SELECT * FROM users ORDER by crown DESC"); 

을 왕관에 주문한 동안 목록에 있습니까?

미리 감사드립니다.

+0

을, 당신 같은 소리는 정말이 작업을 수행하는 방법을 찾고 특히 PHP에서 결과를 루핑하는 대신 SQL 쿼리를 사용하여 수정하십시오. –

+0

글쎄, 결과를 PHP로 가져와 목록에있는 사용자를 보여줄 수 있습니다. –

답변

0

나는 사용자의 왕관 가치를 얻을 수 있다고 가정하고 이와 같은 작업을 수행합니다. 당신이 그들의 왕관 값을 얻을 수없는 경우 또는

SELECT `user_var_you_want`, 
     (SELECT COUNT(*) FROM `users` WHERE `crown` > $user_crown_value)+1 AS `position` 
FROM `users` 
WHERE `user_var_you_want` = $search_value 

: MySQL의 대 PDO로 얻거나 * 문제를 선택하지 않고

SELECT `user_var_you_want`, 
     (SELECT COUNT(*) FROM `users` WHERE `crown` > (SELECT `crown` from `users` WHERE `user_var_you_want` = $search_value)+1) AS `position` 
FROM `users` 
WHERE `user_var_you_want` = $search_value 
+0

크라운 값이 이미 있습니다. 그 다음 숫자를 순서대로 입력하여 목록에서 자신의 위치를 ​​찾으십시오. –

+0

사실, 목록에서 자신의 위치를 ​​찾고 싶다면 먼저 검색해야합니다. 그러면 위에있는 사람의 수를 계산하고 계산 한 다음 자신의 위치를 ​​얻습니다. 즉 위 쿼리에서 수행 한 것입니다. '당신이 사용자의 왕관 가치를 얻을 수 있다고 가정하면'나는 당신이 쿼리를 수행하고있는 페이지에 이미 변수로 저장했는지의 여부를 의미했습니다. 그렇지 않으면 첫 번째 것을 사용하고 두 번째 것은 사용하십시오. – MrLore

+0

결국 네가 말하고있는 말은 그들이 어느 위치에 있는지 말할 수있게된다. 그래서 네 번째 위치에 있다면 "4"라고 말할 것인가? –