2012-04-11 47 views
0

谷歌搜索了一段時間後,我沒有看到答案。無論如何,我有一個存儲過程的情況下我做了一套選擇,如:MySql存儲過程SET命令 - 出錯時

SET someVariable = (SELECT ...) 

總之,由於地方也存在系統中的一些多餘的記載,在集中使用這種SELECT查詢返回多行。我猜這會導致破損或惡劣?真假?

謝謝。

+0

您不能將多個記錄傳遞到標量變量。正確編寫查詢以返回確切的記錄,或將數據插入到另一個表中。 – Devart 2012-04-11 16:04:07

+0

這就是我所做的。我被告知這個特定的表沒有多餘的條目,並將其作爲面值。我需要的專欄並不是獨一無二的,這就是爲什麼我追蹤了這一點。 – kmarks2 2012-04-11 20:37:33

回答

2

是的。分配給變量時,查詢必須返回一行,包含一列。您也可以使用以下語法:

SELECT someColumn INTO myVariable ... LIMIT 1; 
+0

如果它有兩行,它是一個警告,一個異常,它會崩潰我的程序的其餘部分?謝謝。 – kmarks2 2012-04-11 16:02:20

+0

然後MySQL會給出一個錯誤(不知道哪一個,但也許「錯誤1172 - 結果包括多行」) – bfavaretto 2012-04-11 16:04:56

+0

真棒,謝謝。 – kmarks2 2012-04-11 20:38:34