programing

where-clause - 성능에서 계산된 열

sourcejob 2023. 10. 21. 10:23
반응형

where-clause - 성능에서 계산된 열

MySQL의 where-clause에서는 계산된 열을 다음과 같이 사용할 수 없습니다.

SELECT a,b,c,(a*b+c) AS d FROM table
WHERE d > n
ORDER by d

당신은 사용해야 합니다.

SELECT a,b,c,(a*b+c) AS d FROM table
WHERE (a*b+c) > n
ORDER by d

계산은 (해당 예에서 "(a*b+c)"는 행당 1회 실행됩니까, 아니면 2회 실행되나요?더 빨리 할 수 있는 방법이 있습니까?저는 칼럼에 주문은 가능하지만 WHERE 조항이 없는 것이 이상하다고 생각합니다.

HAVEN을 사용하여 계산된 열을 필터링할 수 있습니다.

SELECT a,b,c,(a*b+c) AS d, n FROM table
HAVING d > n
ORDER by d

다음을 포함해야 합니다.nSELECT 절에서 이 작업을 수행할 수 있습니다.

이렇게 할 수 있습니다.

SELECT a,b,c,d FROM 
(SELECT a,b,c,(a*b+c) AS d) AS tmp
WHERE d > n
ORDER BY d

그러나 성능에 어떤 영향을 미칠 수 있는지는 잘 모르겠습니다.

언급URL : https://stackoverflow.com/questions/16068662/calculated-column-in-where-clause-performance

반응형