2012-01-18 2 views
2

의 난의 간단한 테이블이 있다고 가정 해 봅시다이다MySQL은 가상 행을 다시

SELECT id, 
     name, 
     (salary+1) as MS 
FROM test_table 

싶습니다 쿼리 :이다

id,name,salary 

내가 가진 쿼리를

SELECT id, 
     name, 
     (salary+1) as MS, 
     (MS-20) as MS2 
FROM test_table 

그게 가능합니까 아니면 MS의 가치를 얻을 필요가있을 때마다 새로운 하위 쿼리를 만들 수있는 유일한 옵션입니까?

답변

1

당신은 사용자 정의 변수를 사용할 수 있습니다

SELECT 
    id, 
    name, 
    @MS1:=(salary+1) as MS1, 
    (@MS1-20) as MS2 
FROM test_table; 

그러나 사용자 정의 변수를 포함하는 쿼리를 MySQL의의 쿼리 캐시 캐시 할 수 없습니다 (당신이 돌보는 경우).

+0

감사합니다, 이것은 내가 찾고있는 것입니다. – user1156093

+0

멋지다, 지금은 다른 쿼리 재사용이 가능하면 @variable –

0

당신은 이런 식으로 작업을 수행 할 수 있습니다

SELECT id, 
     name, 
     (salary+1) as MS, 
     ((salary+1)-20) as MS2 
FROM test_table 
+0

네, 요점은, 그냥 MS를 사용하는 대신 (급여 + 1)을 다시 작성해야한다는 것입니다. – user1156093