Programming

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

procodes 2020. 5. 20. 22:04
반응형

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


MySQL의 쿼리 결과를 기반으로 사용자 변수를 설정할 수 있습니까?

내가 달성하고자하는 것은 이런 일이 (우리 둘 것을 가정 할 수있다 USERGROUP고유) :

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에서 varible을 정의하려면 @ {variable_name}과 같은 '@'로 시작하고이 '{variable_name}'과 같이 변수 이름으로 바꿀 수 있습니다.

이제 mysql에서 변수에 값을 할당하는 방법. 이를 위해 여러 가지 방법이 있습니다.

  1. 키워드 'SET'사용

예 :-mysql> SET @a = 1;

  1. 키워드 'SET'을 사용하지 않고 ': ='을 (를) 사용하지 않습니다.

예 :-mysql> @a : = 1;

  1. 'SELECT'문을 사용합니다.

예 :-mysql> @를 1로 선택;

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

이제 @ {variable_name}의 값을 얻거나 선택하는 방법.

우리는 다음과 같은 select 문을 사용할 수 있습니다

예 :-

mysql> @a를 선택하십시오;

출력을 표시하고 @a의 값을 표시합니다.

이제 변수의 테이블에서 값을 할당하는 방법.

For this we can use two statement like :-

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

  2. select emp_name into @a from employee where emp_id = 1;

Always be careful emp_name must return single value otherwise it will throw you a error in this type statements.

refer this:- http://www.easysolutionweb.com/sql-pl-sql/how-to-assign-a-value-in-a-variable-in-mysql


Use this way so that result will not be displayed while running stored procedure.

The query:

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

반응형