id 열이 마지막 50 개의 행에있는 select 쿼리를 실행할 수 있습니까? 그래서 id> 총 ID - 50과 같습니다.Sql where id = totalids
그런 식으로 뭔가요? 구문을 잘 모르겠습니다! 환호
id 열이 마지막 50 개의 행에있는 select 쿼리를 실행할 수 있습니까? 그래서 id> 총 ID - 50과 같습니다.Sql where id = totalids
그런 식으로 뭔가요? 구문을 잘 모르겠습니다! 환호
:
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입니다,하지만 당신에 대해 질문했다 정확히 무엇을 할 것입니다.
이것은?
SELECT *
FROM `table`
ORDER BY `id` DESC
LIMIT 50
이렇게하려면 ORDER BY와 LIMIT를 결합하면됩니다. docs on SELECT에서 해당 내용을 읽을 수 있습니다.
뭔가 같은 :
SELECT * FROM table ORDER BY ID DESC LIMIT 50
방금 마지막 50 개 행을 선택, 또는 마지막 50 행에서 뭔가를 선택 찾으시는 것입니까? 방금 지난 50 개 항목을 원하는 경우 위를 사용할 수
SELECT *
FROM table
WHERE id IN (SELECT TOP 50 id FROM table ORDER BY id DESC)
AND whatImLookingFor = 'Something'
위의 의견에 따르면, 위의 내 말문 끝에 "AND (home_user = '$ u'또는 away_user = '$ u')"를 추가하고 이동할 수 있어야합니다. 그렇게하는 것이 더 효율적인 방법 일 수도 있지만, 그것이 내가 아는 최고입니다. – cincodenada
필자는 위에서 언급 한 내용을 테스트하여 정상적으로 작동하고이를 반영하도록 위의 내용을 업데이트했습니다. MySQL 5.1은 적어도 서브 쿼리에서 LIMIT를 지원하지 않으므로 Brendan의 솔루션은 나에게 적합하지 않습니다. id는 색인이 붙어서 모두 색인이 붙여 졌기 때문에 위의 내용이 너무 예쁘게 나왔습니다. – cincodenada
이것은 친구, 스포트! 하위 쿼리에서의 한계는 작동하지 않았습니다. – sark9012