mysql
저장 프로시저에 여러 개의 선택이 있지만 마지막 선택만 결과 세트로 반환하고 싶습니다. 다른 선택 출력을 차단하는 방법은 무엇입니까?
mysql에서 저장 프로시저의 반환 값을 가져오려면 반환할 out 매개변수를 추가하면 됩니다.
mysql의 저장 프로시저 예:
절차 추가 바우처 생성(
IN 사용자 ID INT,
IN 바우처ID INT,
OUT 결과 INT
)
시작
선택
@endate_a := endate ,@batch_a := 배치 ,@c_count_a := c_count,
@isdead_a :=죽었다
보낸사람
t_바우처
어디
id = 바우처ID;
SET 자동 커밋 = 0;
존재하는 경우(
선택
*
보낸사람
t_user_voucher tuv,
t_바우처 tv
어디
tv.id = tuv.voucherid
그리고 tv.batch =@batch_a
) 그럼
SET 결과 = 1;-- 이미 존재합니다
선택
결과;
그 외
IF @c_count_a > 0 THEN
IF(
TO_DAYS(@endate_a) - TO_DAYS(NOW())
) > 0 다음
@isdead_a = 1이면
t_user_voucher에 삽입(사용자 ID, 바우처 ID, 사망)
가치
(사용자 ID, 바우처 ID, 1);
업데이트 t_voucher SET c_count = c_count-1 여기서 id = 바우처id;
SET 결과 = 0;--성공
끝;
<code> </code>
이건 제가 원하는 결과가 아닙니다. 제 질문에 대한 답변이 잘못되었습니다
1) 우선 저장 프로시저를 변경할 수 있나요? 처음 몇 개만 차단할 수 있다면 필요하지 않은 경우 왜 쿼리합니까?
2) 변경할 수 없다면 가장 어리석은 일은 원하는 선택 항목의 개수를 세고 반환된 결과에 설정된 결과 개수를 가져오는 것입니다
먼저 이전 옵션이 필요한지 확인한 후 해결책을 생각해 보세요