2012-03-08 40 views
0

我想要做的事,如:MySQL存儲過程,如果(選擇....)>變量,然後

if ((select count(id) from abc where ...) > variableINT) then ..... 

爲什麼這doesn't正常工作?

+0

我只想在表abc中的count(id)高於INT變量中的數字時做一些事情。標準條件,爲什麼這沒有意義? – 2012-03-08 09:39:16

+0

現在明白了。那麼 - 你需要使用'SELECT ... INTO'語法 – zerkms 2012-03-08 09:40:49

+0

是的,我需要一個變量,我知道它。謝謝。 – 2012-03-08 09:46:34

回答

3

不要在你的存儲過程如下(我假設你聲明變量和編寫查詢的基礎知識):

聲明一個變量count_id:count_id NUMBER;

然後運行查詢:select count(id) into count_id from abc where ...

然後您可以測試該變量:if (count_id > ...) then .... end if

+0

就是這樣。我必須申報一個變量,不能選擇條件。謝謝! – 2012-03-08 09:42:56

0

假設您有一個鏈接表(mylinks),其中包含從source_id到target_id的鏈接,並且您只想找到ta有超過5個鏈接的rgets。這將在MySQL中工作。不確定關於MS-SQL。

將target_id,count(source_id)選擇爲來自mylinks組的num_links,通過具有num_links> 5的target_id進行計數;

+0

是的,它會工作,但不適合我的情況 - 我在複雜的聲明中擁有自己的條件 - 但我沒有提到它。無論如何謝謝你的答案。 – 2012-03-08 10:20:15