[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
다음과 같이 테이블을 참조하여 모호하지 않게 만들 수도 있습니다.
SELECT p.Id, p.dateCreated INTO id, datecreated FROM products p
WHERE pName = iName
답변
Martin의 대답 대신 쿼리 끝에 INTO 부분을 추가하여 쿼리를 더 읽기 쉽게 만들 수도 있습니다.
SELECT Id, dateCreated FROM products INTO iId, dCreate