[sql] MySQL : 저장 프로 시저에서 여러 필드를 여러 변수로 선택

MySQL의 동일한 선택 쿼리 내에서 여러 열을 여러 변수로 선택할 수 있습니까?

예를 들면 :

DECLARE iId INT(20);
DECLARE dCreate DATETIME;

SELECT Id INTO iId, dateCreated INTO dCreate
FROM products
WHERE pName=iName;

이에 대한 올바른 구문은 무엇입니까?



답변

귀하의 문법은 꽤 괜찮되지 않습니다 : 당신은 INTO 전에 순서대로 필드를 나열해야하고, 해당 목표 변수 후 :

SELECT Id, dateCreated
INTO iId, dCreate
FROM products
WHERE pName = iName


답변

========== 조언 ==========

@martin clayton 대답은 맞지만 이것은 조언 일뿐입니다.

저장 프로 시저에서 모호한 변수를 사용하지 마십시오.

예 :

SELECT Id, dateCreated
INTO id, datecreated
FROM products
WHERE pName = iName

위의 예는 오류 (null 값 오류)를 발생시킵니다.

아래의 예가 정확합니다. 이해가 되길 바랍니다.

예 :

SELECT Id, dateCreated
INTO val_id, val_datecreated
FROM products
WHERE pName = iName

다음과 같이 테이블을 참조하여 모호하지 않게 만들 수도 있습니다.

[ 출처 : maganap ]

SELECT p.Id, p.dateCreated INTO id, datecreated FROM products p
WHERE pName = iName


답변

Martin의 대답 대신 쿼리 끝에 INTO 부분을 추가하여 쿼리를 더 읽기 쉽게 만들 수도 있습니다.

SELECT Id, dateCreated FROM products INTO iId, dCreate


답변