程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MYSQL存儲過程發生Result consisted of more than one r...解決

MYSQL存儲過程發生Result consisted of more than one r...解決

編輯:MySQL綜合教程

MYSQL存儲過程發生Result consisted of more than one r...   摘要: MYSQL存儲過程錯誤   SELECT … INTO …   這個SELECT語法把選定的列直接存儲到變量。因此,只有單一的行可以被取回。   在使用的時候,要注意,加上LIMIT 1  

SELECT id,data INTO x,y FROM topic LIMIT 1;

 

另外,這種賦值語句還有個規矩就是參數名和字段名不能沖突,不然能夠執行過去,但是卻沒有給參數賦值,這是個很隱性的錯誤,可以參考手冊上的:   重要: SQL變量名不能和列名一樣。如果SELECT ... INTO這樣的SQL語句包含一個對列的參考,並包含一個與列相同名字的局部變量,MySQL當前把參考解釋為一個變量的名字。  
DELIMITER //

CREATE PROCEDURE mytopic (

        topicId INT(4),

        title VARCHAR(50)

        )  

BEGIN    

    SELECT topicId,title 

    INTO topicId,title       

    FROM tbl_topic limit 1;  

END//

DELIMITER ;

 

當這個程序被調用的時候,無論topicId,title列的值是什麼,變量newname將返回值‘NULL’。   
即:

CALL mytopic(@topicId,@title);

SELECT @topicId,@title;

顯示結果:


@topicId  @title

NULL        NULL

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved