2011-12-16 38 views
0
Query Output: 
> 

SELECT 
    @foo := 1, 
    @foo, 
    (SELECT @foo), 
    (SELECT foo FROM (SELECT @foo AS foo) subselect) 

+ -------------- + --------- + ------------------ + ----------------------------------------------------- + 
| @foo := 1  | @foo  | (SELECT @foo)  | (SELECT foo FROM (SELECT @foo AS foo) subselect)  | 
+ -------------- + --------- + ------------------ + ----------------------------------------------------- + 
| 1    | 1   | 1     | 0              | 
+ -------------- + --------- + ------------------ + ----------------------------------------------------- + 
1 rows 

嗯...我只是想知道爲什麼第四列的值是0,而不是1用戶變量

回答

2

因爲這是FROM (SELECT @foo AS foo)@foo := 1之前評估。基本上,FROM中的任何內容都將在SELECT之前進行評估。

它實際上應該是空的,但我猜你已經將會話變量賦值爲零。

+0

本,你是對的。零是我的會話變量的原始值。無論如何,有沒有辦法檢索值(1)? – 2011-12-16 17:46:58