我做了一個這樣的存盤函式來回傳每個客戶的發票數量:
我做了一個這樣的存盤函式來回傳每個客戶的發票數量:
delimiter //
CREATE FUNCTION function1(id INT) RETURNS INT READS SQL DATA
BEGIN
DECLARE result INT;
(SELECT count(invoice_id) INTO @result FROM發票 WHERE customer_id = @id)。)
RETURN @result;
END//
分隔符。
但是當我使用它時,回傳0:
。SELECT function1(12) AS Q。
和查詢回傳428 :
SELECT count(invoice_id) AS Q FROM發票 WHERE customer_id = 12;
我需要知道我做錯了什么。
。uj5u.com熱心網友回復:
@id與id不一樣
但最好使用變數名_id來區分變數和列名
delimiter //
CREATE FUNCTION function1(_id INT) RETURNS INT READS SQL DATA
BEGIN
DECLARE result INT;
(SELECT count(invoice_id) INTO @result FROM發票 WHERE customer_id = _id)。)
RETURN @result;
END//
分隔符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/306802.html
標籤:
下一篇:MySQL根據一個條件連接兩個表
