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 변수 값을 할당하는 방법을 나타냅니다.그러기 위해서는 여러 가지 방법이 있습니다.
- 키워드 'SET' 사용.
예:-
mysql > SET @a = 1;
- 키워드 'SET'를 사용하지 않고 ':='를 사용하지 않습니다.
예:-
mysql > @a:=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
'sourcecode' 카테고리의 다른 글
목록에 항목이 있는 경우 어떻게 삭제합니까? (0) | 2022.11.26 |
---|---|
Express Router 및 vuex 서비스 및 액션을 사용하여 사용자를 추가하는 방법(사후 요청) (0) | 2022.11.26 |
ERROR 1698 (28000):사용자 'root'@'localhost'에 대한 액세스가 거부되었습니다. (0) | 2022.11.26 |
JPA: 단방향 다대일 및 캐스케이드 삭제 (0) | 2022.11.26 |
Firestore onSnapshot() 메서드가 여러 번 실행됩니다. (0) | 2022.11.26 |