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

MySQL CONV() 함수의 진수(base) 하한 및 상한 이해하기: 범위를 벗어난 값 입력 시 결과는?

MySQL의 CONV() 함수에서 사용할 수 있는 진수(base)에는 명확한 하한과 상한이 존재합니다. 진수 값은 반드시 2보다 크고 36보다 작아야 하며, 즉 하한은 2, 상한은 36입니다. 이 제한은 from_base(원래 진수)와 to_base(변환할 진수) 두 값 모두에 동일하게 적용됩니다.

범위를 벗어난 진수를 입력하면 어떻게 될까?

만약 허용 범위(2~36)를 벗어나는 진수 값을 인자로 전달하면, MySQL은 오류를 발생시키지 않고 NULL을 반환합니다. 아래 예제를 통해 실제 동작을 확인할 수 있습니다.

예제 1: 상한(36)을 초과하는 경우

mysql> Select CONV(10,10,38);

+----------------+
| CONV(10,10,38) |
+----------------+
| NULL           |
+----------------+

1 row in set (0.00 sec)

변환 대상 진수로 38을 지정했기 때문에 상한인 36을 초과하여 NULL이 반환됩니다.

예제 2: 원래 진수(from_base)가 범위를 벗어나는 경우

mysql> Select CONV(10,72,2);

+---------------+
| CONV(10,72,2) |
+---------------+
| NULL          |
+---------------+

1 row in set (0.00 sec)

이번에는 from_base 값으로 72를 지정했습니다. 역시 허용 범위를 훨씬 벗어나므로 NULL이 출력됩니다.

예제 3: 하한(2) 미만의 값을 입력하는 경우

mysql> Select CONV(10,10,1);

+---------------+
| CONV(10,10,1) |
+---------------+
| NULL          |
+---------------+

1 row in set (0.00 sec)

진수 1은 하한인 2 미만이므로 유효하지 않으며, 마찬가지로 NULL이 반환됩니다.

정리

CONV() 함수의 진수 인자는 2에서 36 사이의 값만 유효합니다. 이 범위를 벗어나는 값이 from_base 또는 to_base 중 어느 쪽에든 입력되면 MySQL은 에러 메시지 없이 조용히 NULL을 반환하므로, 쿼리 작성 시 진수 값의 유효 범위를 항상 확인하는 것이 좋습니다.