MySQL ||运算符的优先级如何依赖于PIPES_AS_CONCAT SQL模式?

MySQL ||运算符的优先级如何依赖于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运算符工作,因此输出为1表示为true。

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)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程