Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL CONV() 함수에서 숫자가 밑수와 일치하지 않으면 어떻게 될까?

CONV() 함수에서 숫자와 밑수가 일치하지 않는 경우

MySQL의 CONV() 함수에서 인자로 전달된 숫자가 지정된 밑수(from_base)와 맞지 않으면, MySQL은 결과값으로 0을 반환합니다.

예를 들어, 10진수인 숫자 9를 2진수로 변환하고 싶다면 이 경우 from_base 값은 반드시 10이어야 합니다. 하지만 실수로 from_base 값을 8(8진수)로 지정하면 MySQL은 오류 대신 0을 출력합니다.

예제

mysql> SELECT CONV(9, 8, 2);

+-------------+
| CONV(9,8,2) |
+-------------+
| 0 |
+-------------+

1 row in set (0.00 sec)

이유

알다시피 8진법에서 표현할 수 있는 숫자의 범위는 반드시 0부터 7 사이여야 합니다. 따라서 숫자 9를 포함하는 수 체계는 10진수, 즉 밑수 10이어야 합니다. 숫자가 지정된 진법에 존재할 수 없는 자릿값을 가지고 있다면 유효한 변환이 불가능하기 때문에 MySQL은 0을 반환하는 것입니다.

따라서 CONV() 함수를 사용할 때는 변환하려는 숫자가 from_base에 명시한 진법 체계 내에서 유효한 값인지 먼저 확인하는 것이 좋습니다.