>  기사  >  데이터 베이스  >  MySQL 저장 프로시저의 다중 선택 문제

MySQL 저장 프로시저의 다중 선택 문제

WBOY
WBOY원래의
2016-08-29 08:36:201256검색

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) 변경할 수 없다면 가장 어리석은 일은 원하는 선택 항목의 개수를 세고 반환된 결과에 설정된 결과 개수를 가져오는 것입니다

먼저 이전 옵션이 필요한지 확인한 후 해결책을 생각해 보세요

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.