Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

||의 우선 순위는 어떻게 되나요? 연산자는 PIPES_AS_CONCAT SQL 모드에 의존합니까?


MySQL에서 기본적으로 알고 있듯이 || operator는 논리적 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)