[英]MySql stored procedure rows issue
我有這個存儲過程:
CREATE DEFINER=`admin`@`%` PROCEDURE `GetTickets4Card`(
IN p_TicketID int,
OUT p_returnvalue int
)
BEGIN
SELECT idbookingstickets
INTO @p_returnvalue
FROM bookingstickets
WHERE TicketId = p_TicketID;
/* Return value accordingly */
IF mysqll_affected_rows = 0 THEN SET p_returnvalue = 0;
/*
ELSE
SELECT * FROM BookingsTicketsCollected WHERE p_returnalue = idtickets;
if mysqll_affected_rows = 0 THEN SET p_returnvalue = -1;
END IF;
*/
END IF;
END
它給了我以下錯誤:“結果由不止一行組成”。 它可能與mysql_affected_rows
有關,但我不知道,我想知道 sql 語句是否返回 1 行,有什么想法嗎?
調用代碼:
set @p_returnvalue = 0;
call yourTICKETbox_LIVE_DB.GetTickets4Card("aabb188e-6adc-11e5-9770-061de6653ea3", @p_returnvalue);
select @p_returnvalue;
當您使用SELECT... INTO variable
時,查詢必須最多返回一行。 如果您只關心是否有任何匹配的行,您可以使用EXISTS()
function。
SET p_returnvalue = EXISTS(
SELECT 1
FROM bookingstickets
WHERE TicketId = p_TicketID);
順便說一句,MySQL 等效於 PHP function mysqli_affected_rows()
是ROW_COUNT()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.