2012-06-24 3 views
1

내가 가진 내가 경과 된 시간을 기준으로 (시간) 지정된 시간 동안 업데이트되지 기록과 순서를 검색하는 데 사용하는 아래의 쿼리MySQL의 : 쿼리 내에서 계산을 다시 사용하는 방법

SELECT TABLE.Key, TIMESTAMPDIFF(HOUR, TABLE.Date_last_consulted, CURRENT_TIMESTAMP) 
FROM TABLE WHERE TIMESTAMPDIFF(HOUR, TABLE.Date_last_consulted, 
CURRENT_TIMESTAMP) <= 7 ORDER BY TIMESTAMPDIFF(HOUR, TABLE.Date_last_consulted, 
CURRENT_TIMESTAMP); 

로를 당신은 볼 수 있습니다, 그것은 여러 번 TIMESTAMPDIFF를 호출합니다.이 호출은 쓸모없는 SQL 계산으로 이어지기 때문에 매우 효율적이지 않습니다.

계산을 다시 사용하여 한 번 처리되는 방법이 있는지 궁금합니다.

도움을 주셔서 감사합니다.

플로랑

+0

난 당신이 내가 당신의 질문을 편집 것을 생각하지 않았 으면, 나는이 제목과 본문에 더 많은 관심을 얻을 것이라 생각합니다. 감사합니다. – Sebas

+0

전혀 다시 쓰지 않아서 고마워. 내 영어는별로 좋지 않다. – ehretf

답변

0
SELECT 
    t.Key, t.dif 
FROM (
     SELECT key, TIMESTAMPDIFF(HOUR, TABLE.Date_last_consulted, CURRENT_TIMESTAMP) dif 
     FROM TABLE 
    ) t 
WHERE 
    t.dif <= 7 
ORDER BY 
    t.dif 
+0

고마워 Sebas, 나는 이것을 시험해 볼 것이다! – ehretf

+0

오케이, 계속 게시 해주세요! – Sebas

+0

물론, 나는 내일 그것을 시험 할 수있을 것이다. 당신이 사용했던 요청의 구조는 매우 interessting, 나는 그것을 이해하기 위해 문서에서 볼 것입니다. 고마워. 친애하는. – ehretf