2012-09-02 35 views
-1
錯誤1222

我面對這個錯誤... 錯誤代碼:1222在MySQL:所使用的SELECT語句具有不同的列數關於MySQL

。這是我的代碼:

CREATE PROCEDURE `test`() 
BEGIN 
    SELECT ID, Name 
    FROM attributes into @resultset; 
END 
+1

難道不是不言自明嗎?您將2列選擇到結果集中,該表的結果集的數量不超過2列。 – McGarnagle

+2

@dbaseman:'@ resultset'是一個用戶變量,而不是一個表。 – eggyal

回答

1

作爲SELECT ... INTO Syntax下記錄(加入我的強調):

INTO子句可以命名一個或多個變量的列表,其可以是用戶定義的變量,存儲過程或函數對米或存儲的程序局部變量(請參閱Section 13.6.4, 「Variables in Stored Programs」)。選定的值被分配給變量。 變量的數量必須與列數相匹配。該查詢應該返回一行。如果查詢不返回任何行,則會發生錯誤代碼爲1329的警告(No data),並且變量值保持不變。如果查詢返回多個行,則會發生錯誤1172(Result consisted of more than one row)。如果語句可能檢索多行,則可以使用LIMIT 1將結果集限制爲單行。

SELECT id, data INTO @x, @y FROM test.t1 LIMIT 1;