文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  運算子優先順序

14.4.1 運算子優先順序

運算子優先順序顯示在以下列表中,從最高優先順序到最低優先順序。在同一行顯示的運算子具有相同的優先順序。

INTERVAL
BINARY, COLLATE
!
- (unary minus), ~ (unary bit inversion)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN, MEMBER OF
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
AND, &&
XOR
OR, ||
= (assignment), :=

= 的優先順序取決於它是用作比較運算子 (=) 還是賦值運算子 (=)。當用作比較運算子時,它的優先順序與 <=>>=><=<<>!=ISLIKEREGEXPIN() 相同。當用作賦值運算子時,它的優先順序與 := 相同。第 15.7.6.1 節,〈SET 變數賦值語法〉第 11.4 節,〈使用者定義變數〉說明 MySQL 如何判斷應採用哪種 = 的解釋。

對於在運算式中處於相同優先順序的運算子,評估從左到右進行,但賦值除外,賦值從右到左評估。

某些運算子的優先順序和含義取決於 SQL 模式

  • 依預設,|| 是邏輯 OR 運算子。啟用 PIPES_AS_CONCAT 時,|| 是字串串連,其優先順序介於 ^ 和一元運算子之間。

  • 依預設,! 的優先順序高於 NOT。啟用 HIGH_NOT_PRECEDENCE 時,!NOT 具有相同的優先順序。

請參閱第 7.1.11 節,〈伺服器 SQL 模式〉

運算子的優先順序決定運算式中項目的評估順序。若要覆寫此順序並明確群組項目,請使用括號。例如

mysql> SELECT 1+2*3;
        -> 7
mysql> SELECT (1+2)*3;
        -> 9