2017-09-21 93 views
0

我有一個基本的存儲過程SELECT INTO ..回報多於一個行 - Mysql的

DECLARE user_o VARCHAR(50); 

SELECT user_name INTO user_o FROM users WHERE topic_id = 54 AND entry_time BETWEEN 
2017-09-17 AND date_add(CURRENT_DATE, INTERVAL 1 DAY) ORDER BY entry_time ASC 
LIMIT 10; 

,這將引發我錯誤#1172 SQL返回多個行。不知道爲什麼?

我的目標是有這個結果集

​​
+0

user_o表是否已經存在? – Tom

+0

@tom該死的。我忘了添加FROM語句。編輯的問題。感謝您指向它 –

+0

用戶inclludes用戶名,topic_id,entry_time和user_o是一個聲明 –

回答

2

它,因爲你要插入的結果「變成」一個變量,因爲結果比單個值,因此錯誤。

你有10的限制,嘗試更改爲1,這將修復它,如果你想要返回多個值,那麼你需要在記錄集中管理這些值。

+0

是的,但我想要做的是:拿'麥克'表格比放到'user_o'。比'用戶'表內的每個'user_name'都要做到這一點。我想要10個用戶名不是1.對此有更詳細的解釋嗎? –

+0

試試這個,https://stackoverflow.com/questions/37633369/how-to-get-recordset-from-internal-call-to-stored-procedure – SPlatten