2012-04-09 6 views
55
SET @v1 := SELECT COUNT(*) FROM user_rating; 
SELECT @v1 

이 쿼리를 set 변수와 함께 실행하면이 오류가 표시됩니다.mysql을 사용하여 변수에 질의 결과를 저장하는 방법

Error Code : 1064 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use 
near 'SELECT count(*) FROM user_rating' at line 1 

Execution Time : 00:00:00:000 
Transfer Time : 00:00:00:000 
Total Time  : 00:00:00:000 

(1 row(s) returned) 
Execution Time : 00:00:00:343 
Transfer Time : 00:00:00:000 
Total Time  : 00:00:00:343 
+0

http://stackoverflow.com/questions/6081436/how-to- use-alias-as-field-in-mysql/6081523 # 6081523 –

답변

98

괄호로 선택하는 서라운드. SELECT @varname:=value가 : 당신이 하나 개의 쿼리로 한 번에 여러 변수를 설정하려면

SET @v1 := (SELECT COUNT(*) FROM user_rating); 
SELECT @v1; 
+2

하위 쿼리가 단지 1 행과 1 열을 포함해야합니까? 1.'# 1242 - 서브 쿼리는 1 행 이상을 반환합니다. ', 2.'# 1241 - 피연산자는 1 개의 열을 포함해야합니다' – Shafizadeh

+0

SELECT @ v1; 이 줄은 나를 위해 작동하지 않습니다 –

+0

@RajatGupta : 어디에서 실행하고 있습니까? 그리고 "작동하지 않음"을 정의하십시오. –

19

또한, 당신은 이렇게 가고 변수를 설정하는 다른 구문을 사용할 수 있습니다.

실용적인 예제

SELECT @total_count:=COUNT(*), @total_price:=SUM(quantity*price) FROM items ... 
7

사용이

SELECT weight INTO @x FROM p_status where tcount=['value'] LIMIT 1; 

는 ... 테스트 미세 workes

+0

이 문장에서 괄호'[] '는 무엇을 의미합니까? – alex

+0

아무 것도 그냥 자리 표시 자 []를 건너 뛰지 않고 작은 따옴표로 값을 입력하십시오. –

관련 문제