|| 运算符的优先级如何取决于 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)
广告