sourcecode

MySQL: 쿼리 결과에서 사용자 변수 설정

copyscript 2022. 11. 26. 08:47
반응형

MySQL: 쿼리 결과에서 사용자 변수 설정

MySQL 조회 결과에 따라 사용자 변수를 설정할 수 있습니까?

제가 달성하고 싶은 것은 이런 것입니다(둘 다USER그리고.GROUP고유) :

set @user = 123456;
set @group = select GROUP from USER where User = @user;
select * from USER where GROUP = @group;

가능한 것은 알지만, 네스트된 쿼리에 대해서는 하고 싶지 않습니다.

예, 단 변수 할당을 쿼리로 이동해야 합니다.

SET @user := 123456;
SELECT @group := `group` FROM user WHERE user = @user;
SELECT * FROM user WHERE `group` = @group;

테스트 케이스:

CREATE TABLE user (`user` int, `group` int);
INSERT INTO user VALUES (123456, 5);
INSERT INTO user VALUES (111111, 5);

결과:

SET @user := 123456;
SELECT @group := `group` FROM user WHERE user = @user;
SELECT * FROM user WHERE `group` = @group;

+--------+-------+
| user   | group |
+--------+-------+
| 123456 |     5 |
| 111111 |     5 |
+--------+-------+
2 rows in set (0.00 sec)

주의해 주세요.SET,어느 하나=또는:=할당 연산자로 사용할 수 있습니다.그러나 다른 문에서 할당 연산자는 다음과 같아야 합니다.:=가 아니라=왜냐면=는, SET 이외의 문에서는 비교 연산자로 취급됩니다.


갱신:

이하의 코멘트 외에, 다음의 조작도 가능합니다.

SET @user := 123456;
SELECT `group` FROM user LIMIT 1 INTO @group; 
SELECT * FROM user WHERE `group` = @group;

쿼리 주위에 괄호를 추가합니다.

set @user = 123456;
set @group = (select GROUP from USER where User = @user);
select * from USER where GROUP = @group;

먼저 mysql에서 변수를 정의하는 방법을 살펴보겠습니다.

mysql에서 변수를 정의하려면 변수를 @{variable_name}과(와) 같이 '@'로 시작해야 하며, 이 '{variable_name}'은 변수 이름으로 대체할 수 있습니다.

다음으로 mysql 변수 값을 할당하는 방법을 나타냅니다.그러기 위해서는 여러 가지 방법이 있습니다.

  1. 키워드 'SET' 사용.

예:-

mysql >  SET @a = 1;
  1. 키워드 'SET'를 사용하지 않고 ':='를 사용하지 않습니다.

예:-

mysql > @a:=1;
  1. 'SELECT' 문을 사용합니다.

예:-

mysql > select 1 into @a;

여기서 @a는 사용자 정의 변수이며 1은 @a에서 할당됩니다.

이제 @{variable_name} 값을 가져오거나 선택하는 방법에 대해 설명합니다.

다음과 같은 선택문을 사용할 수 있습니다.

예:-

mysql > select @a;

출력과 @a 값이 표시됩니다.

이제 변수의 테이블에서 값을 할당하는 방법을 보여 줍니다.

이를 위해 다음과 같은 두 개의 문을 사용할 수 있습니다.

1.

@a := (select emp_name from employee where emp_id = 1);
select emp_name into @a from employee where emp_id = 1;

emp_name은 반드시 단일 값을 반환해야 합니다.그렇지 않으면 이 유형의 문에 오류가 발생합니다.

다음 URL을 참조하십시오.- http://www.easysolutionweb.com/sql-pl-sql/how-to-assign-a-value-in-a-variable-in-mysql

저장 프로시저를 실행하는 동안 결과가 표시되지 않도록 이 방법을 사용합니다.

쿼리:

SELECT a.strUserID FROM tblUsers a WHERE a.lngUserID = lngUserID LIMIT 1 INTO @strUserID;

언급URL : https://stackoverflow.com/questions/3888735/mysql-set-user-variable-from-result-of-query

반응형