||运算符的优先级是如何取决于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)
广告
数据结构
网络
关系型数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP