如果我在下面創建這個存儲過程並運行它,那麼當它應該只是一個查詢時,我從表中取回兩行。MySQL存儲過程在直接查詢返回一個時返回多條記錄
CREATE PROCEDURE `getUserName`(IN Guid VARCHAR(36), IN GameID INT(11))
BEGIN
SELECT `Name` as UserName, `GUID` as guid
FROM playerdata
WHERE `GUID` = Guid AND `GameID` = GameID;
END
CALL getUserName('86fd1007-4a9c-11e7-b2e2-1803733c2d41', 1001);
返回參見圖片
但是,如果我只是運行它作爲常規查詢
SELECT `Name` as UserName, `GUID` as guid
FROM playerdata
WHERE `GUID` = "86fd1007-4a9c-11e7-b2e2-1803733c2d41" AND `GameID` = 1001;
返回參見圖片
我不解的行爲考慮......至少對我來說他們是一回事。
重命名存儲過程參數,例如'_Guid'和'_GameID'。請參見[C.1對存儲程序的限制::存儲例程中的名稱衝突](https://dev.mysql.com/doc/refman/5.7/en/stored-program-restrictions.html)。 – wchiquito
\'GUID \'和Guid是一樣的東西。這與1 = 1相同。 – Strawberry
那就解釋一下吧。當我切換到SQL時,我一直忘記它在大多數情況下不區分大小寫。 –