0
我試圖執行以下準備好的聲明:準備語句,返回結果爲零
PREPARE stmt FROM 'SELECT * FROM Inventory I WHERE I.ParentId = ?';
EXECUTE stmt USING @parentId;
DEALLOCATE PREPARE stmt;
當我執行該語句,返回無行的列標題。它應該返回6行。
如果我執行與沒有PREPARE和EXECUTE語句的普通SQL語句相同的語句,我會得到結果,例如,
SELECT * FROM Inventory I WHERE I.ParentId = parentId;
結果被返回。我究竟做錯了什麼?是否有某種類型的演員正在使我的陳述失效?
更新,parentId作爲參數傳入,例如,
CREATE DEFINER=`george`@`%` PROCEDURE `ListInventoryByParentId`(IN parentId INT)