2016-08-12 40 views
1

我想知道SELECT語句中表達式的執行順序是否始終從左至右發生。SELECT語句中表達式的執行順序

SET @a := 0; 

SELECT 
@a AS first, 
@a := @a + 1 AS second, 
@a := @a + 1 AS third, 
@a := @a + 1 AS fourth, 
@a := @a + 1 AS fifth, 
@a := @a + 1 AS sixth; 

是否保證上述查詢將始終生成以下輸出?

first second third fourth fifth sixth 
    0  1  2  3  4  5 

回答

2

按照MySQL manual

但是,評價涉及用戶 變量表達式的順序是不確定的

所以回答你的問題,是否定的,執行順序是不保證。

+0

感謝參考Giorgos。可能我的下一個問題將是**爲什麼評估包含用戶變量的表達式的評估順序未定義?**: -/ –

+0

@AnonymousOne您必須向MySQL開發人員諮詢這個問題。但是,你的*實際*問題是什麼? –

+0

其實問題是我在一些涉及'mysql'用戶變量的應用程序中運行了一些查詢。由於涉及用戶變量的表達式的評估順序未定義,所以我太擔心這一點。 :( –

0

是,以任何方式存在的執行順序沒有配置,所以你總是得到如下所示的結果。

+0

您能否提供任何鏈接?我想知道更多/詳情。 –

+0

請看Giorgos的回答。 –