programing

쿼리에서 변수 결과 설정

javajsp 2023. 10. 11. 20:29

쿼리에서 변수 결과 설정

저장 프로시저를 만들 때 변수를 만들 수 있습니까?예를 들어 다음과 같습니다.

CREATE PROCEDURE `some_proc` ()  
BEGIN  

   DECLARE some_var INT; 
   SET some_var = 3;
....

질문: 그러나 쿼리에서 변수 결과를 설정하는 방법, 즉 다음과 같은 것을 만드는 방법입니다.

DECLARE some_var INT;
SET some_var = SELECT COUNT(*) FROM mytable ;

?

이렇게 하는 데는 여러 가지 방법이 있습니다.

하위 쿼리를 사용할 수 있습니다.

SET @some_var = (SELECT COUNT(*) FROM mytable);

(원본과 마찬가지로 쿼리 주위에 괄호만 추가)

또는 SELECT INTO 구문을 사용하여 여러 값을 할당합니다.

SELECT COUNT(*), MAX(col)
INTO   @some_var, @some_other_var
FROM   tab;

하위 쿼리 구문은 약간 더 빠르지만(왜 그런지 모르겠습니다) 단일 값을 할당하는 데만 작동합니다.select into syntax를 사용하면 여러 값을 한 번에 설정할 수 있으므로 쿼리에서 여러 값을 가져와야 하는 경우 각 변수에 대해 쿼리를 몇 번이고 실행하는 것이 아니라 이렇게 해야 합니다.

마지막으로 쿼리가 하나의 행이 아닌 결과 집합을 반환하는 경우 커서를 사용할 수 있습니다.

다음 선택문을 사용하면 카운트(*)에서 결과를 저장할 수 있습니다.

SELECT COUNT(*) FROM mytable INTO some_var;

언급URL : https://stackoverflow.com/questions/11226079/set-the-variable-result-from-query