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


眾所周知,在 MySQL 中 || 運算子預設為邏輯 OR 運算子,但它取決於 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)

上述查詢的結果集顯示,|| 運算子作為 OR 運算子,因此對於 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 年 6 月 22 日

147 次瀏覽

開啟你的職業之旅

完成課程獲得認證

開始
廣告
© . All rights reserved.