2010-07-16 9 views
1

id 열이 마지막 50 개의 행에있는 select 쿼리를 실행할 수 있습니까? 그래서 id> 총 ID - 50과 같습니다.Sql where id = totalids

그런 식으로 뭔가요? 구문을 잘 모르겠습니다! 환호

답변

1

:

SELECT * 
    FROM table 
WHERE id IN (SELECT id FROM table ORDER BY id DESC LIMIT 50) 
    AND whatImLookingFor = 'Something' 

편집 : 또는 다른 구문을 사용하여 데이터베이스에 이는 지난 50 선택할 것이다 어떻게 아마 가장 깨끗하고 좋은 방법 일 것입니다. 당신이 정말로 어떤 이유로 ID 걱정한다면, 당신은 MAX 기능을 사용할 수 있습니다

SELECT * 
    FROM table 
    WHERE id > (SELECT MAX(id) FROM table) - 50 
      AND whatImLookingFor = 'Somesuch' 

물론 이것은 대단히 효율적이지 다소 unweidly입니다,하지만 당신에 대해 질문했다 정확히 무엇을 할 것입니다.

+0

위의 의견에 따르면, 위의 내 말문 끝에 "AND (home_user = '$ u'또는 away_user = '$ u')"를 추가하고 이동할 수 있어야합니다. 그렇게하는 것이 더 효율적인 방법 일 수도 있지만, 그것이 내가 아는 최고입니다. – cincodenada

+0

필자는 위에서 언급 한 내용을 테스트하여 정상적으로 작동하고이를 반영하도록 위의 내용을 업데이트했습니다. MySQL 5.1은 적어도 서브 쿼리에서 LIMIT를 지원하지 않으므로 Brendan의 솔루션은 나에게 적합하지 않습니다. id는 색인이 붙어서 모두 색인이 붙여 졌기 때문에 위의 내용이 너무 예쁘게 나왔습니다. – cincodenada

+0

이것은 친구, 스포트! 하위 쿼리에서의 한계는 작동하지 않았습니다. – sark9012

10

이것은?

SELECT * 
FROM `table` 
ORDER BY `id` DESC 
LIMIT 50 
0

이렇게하려면 ORDER BY와 LIMIT를 결합하면됩니다. docs on SELECT에서 해당 내용을 읽을 수 있습니다.

0

뭔가 같은 :

SELECT * FROM table ORDER BY ID DESC LIMIT 50 
0

방금 ​​마지막 50 개 행을 선택, 또는 마지막 50 행에서 뭔가를 선택 찾으시는 것입니까? 방금 지난 50 개 항목을 원하는 경우 위를 사용할 수

SELECT * 
    FROM table 
WHERE id IN (SELECT TOP 50 id FROM table ORDER BY id DESC) 
    AND whatImLookingFor = 'Something' 
+0

$ q = "SELECT id FROM".TBL_CONF_RESULTS "WHERE (home_user = '$ u'또는 away_user = '$ u') IN (SELECT ID FROM".TBL_CONF_RESULTS. "ORDER BY ID DESC LIMIT 100)"; – sark9012

+0

이것은 내가 가지고있는 것이지만 그것을 좋아하지 않습니다. 테이블의 마지막 100 행을 선택한 다음 집 사용자 또는 자리 비움 사용자가 있는지 확인하고 싶습니다. – sark9012