쿼리에서 변수 결과 설정
저장 프로시저를 만들 때 변수를 만들 수 있습니까?예를 들어 다음과 같습니다.
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
'programing' 카테고리의 다른 글
| 관련이 없는 SELECT 문으로 다른 결과를 반환하는 동시 MYSQL 프로시저 호출 (0) | 2023.10.11 |
|---|---|
| SQL 상태 [9999]; 오류 코드 [17004];잘못된 열 유형: 1111 With Spring SimpleJdbcC 호출 (0) | 2023.10.11 |
| 구성 요소가 선언되지 않았습니다. (0) | 2023.10.06 |
| WordPress 데이터베이스 오류: 사용되지 않음: mysql_connect() (0) | 2023.10.06 |
| 모든 mysqli_ 함수를 맹목적으로 mysqli_로 대체할 수 있습니까? (0) | 2023.10.06 |