2
我把從SQL Server存儲過程到MySQL和我遇到已經難倒我的查詢:分配一個變量和一個列的值
UPDATE T_Example
SET @ExampleVar = ExampleColumn = 0
WHERE ExampleColumn2 = @ExampleVar2;
爲了安全起見,我已經改變了變量的名稱,但語法是相同的。
我從來沒有見過這種類型的傳遞賦值,我對這種行爲感到困惑。
是否設置
@ExampleVar = 0 AND setting ExampleColumn = 0
,或者將其設置
@ExampleVar = ExampleColumn, THEN setting ExampleColumn = 0
如果是前者,那麼我想最簡單的方法是檢查UPDATE
後ROW_COUNT()
,如果它是> 0
然後我在IF
塊內將變量分配給0
。 (不漂亮,但我認爲這是最優雅的解決方案。)
如果是後者,那麼我不太確定如何接近它,所以建議會有幫助。
儘管您的查詢在技術上有用,但我注意到它在存儲過程中不起作用。我無法弄清楚爲什麼會出現這種情況,但是如果我在存儲過程中複製完全相同的查詢,則不起作用。在程序之外,它的功能很好。 –
@ B.Roth。 。 。也許你應該問另一個問題。沒有任何理由可以證明這在存儲過程中不起作用。 –
我想通了,區別在於@ExampleVar變量。在存儲過程中,我沒有將它用作會話變量,而是將其用作過程變量。顯然,過程變量不適用於這種類型的查詢,但會話變量將會。 –