||的优先级如何 运算符取决于PIPES_AS_CONCAT SQL模式?

我们知道默认情况下在MySQL中|| 运算符是逻辑或运算符,但取决于PIPES_AS_CONCAT SQL模式。如果启用了PIPES_AS_CONCAT SQL模式,则|| 运算符用作字符串连接。那时,它的优先级将在^和一元运算符之间。以下示例将使其理解-

mysql> Set @C='tutorials';

mysql> Set @D='point';

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

上面查询的结果集显示||。用作OR运算符,这就是为什么输出为true的原因。

mysql> Set SQL_MODE = 'PIPES_AS_CONCAT';

启用PIPES_AS_CONCAT SQL模式后,|| 用作CONCAT()函数的同义词,即字符串串联函数。它显示在以下结果集中-

mysql> Select @C||@D;
+----------------+
| @C||@D         |
+----------------+
| nhooo |
+----------------+
1 row in set (0.00 sec)
猜你喜欢