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에서 varible을 정의하려면 @ {variable_name}과 같은 '@'로 시작하고이 '{variable_name}'과 같이 변수 이름으로 바꿀 수 있습니다.
이제 mysql에서 변수에 값을 할당하는 방법. 이를 위해 여러 가지 방법이 있습니다.
- 키워드 'SET'사용
예 :-mysql> SET @a = 1;
- 키워드 'SET'을 사용하지 않고 ': ='을 (를) 사용하지 않습니다.
예 :-mysql> @a : = 1;
- 'SELECT'문을 사용합니다.
예 :-mysql> @를 1로 선택;
여기서 @a는 사용자 정의 변수이고 1은 @a에 할당됩니다.
이제 @ {variable_name}의 값을 얻거나 선택하는 방법.
우리는 다음과 같은 select 문을 사용할 수 있습니다
예 :-
mysql> @a를 선택하십시오;
출력을 표시하고 @a의 값을 표시합니다.
이제 변수의 테이블에서 값을 할당하는 방법.
For this we can use two statement like :-
@a := (select emp_name from employee where emp_id = 1);
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
'Programming' 카테고리의 다른 글
CentOS 64 비트 잘못된 ELF 인터프리터 (0) | 2020.05.20 |
---|---|
DLL 'SQLite.Interop.dll'을로드 할 수 없습니다 (0) | 2020.05.20 |
데이터베이스 트리거가 악의입니까? (0) | 2020.05.20 |
Android Studio 및 Gradle에서 -source 1.7을 설정하는 방법 (0) | 2020.05.20 |
Rails 열 유형에 대한 설명서가 있습니까? (0) | 2020.05.20 |