||運算子的優先順序是如何取決於PIPES_AS_CONCAT SQL模式的?


我們知道,在 MySQL 中,|| 運算子預設是邏輯或運算子,但它取決於 PIPES_AS_CONCAT SQL 模式。如果啟用了 PIPES_AS_CONCAT SQL 模式,則 || 運算子會用作字串連線。此時,它的優先順序介於 ^ 和一元運算子之間。示例如下:

mysql> Set @C='tutorials';
Query OK, 0 rows affected (0.00 sec)

mysql> Set @D='point';
Query OK, 0 rows affected (0.00 sec)

mysql> Select @C||@D;
+--------+
| @C||@D |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)

上述查詢的結果集顯示,|| 用作或運算子,因此 true 的輸出為 1。

mysql> Set SQL_MODE = 'PIPES_AS_CONCAT';
Query OK, 0 rows affected (0.10 sec)

啟用 PIPES_AS_CONCAT SQL 模式後,|| 用作 CONCAT() 函式的同義詞,即字串連線函式。在以下結果集中顯示了這一點:

mysql> Select @C||@D;
+----------------+
| @C||@D         |
+----------------+
| tutorialspoint |
+----------------+
1 row in set (0.00 sec)

更新時間:2020-06-22

148 次瀏覽

開啟您的 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.