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

MySQL ORD()와 ASCII() 함수의 공통점과 차이점 완벽 정리

MySQL ORD() 함수란?

MySQL의 ORD() 함수는 문자열에서 가장 왼쪽에 있는 문자가 멀티바이트(multi-byte) 문자일 경우, 해당 문자의 코드를 다음 공식을 사용하여 반환합니다.

(첫 번째 바이트 코드) + (두 번째 바이트 코드 × 256) + (세 번째 바이트 코드 × 256²)

반면 ASCII() 함수는 주어진 문자열에서 가장 왼쪽 문자의 ASCII 값을 그대로 반환합니다.

ORD()와 ASCII()의 차이점

두 함수의 차이는 가장 왼쪽 문자가 멀티바이트 문자인지 여부에 따라 결정됩니다. 만약 가장 왼쪽 문자가 멀티바이트 문자가 아니라면, ORD()와 ASCII() 함수는 동일한 결과를 반환합니다.

예제로 확인하기

다음 예제를 통해 두 함수가 싱글바이트 문자에 대해 같은 결과를 반환하는 것을 확인할 수 있습니다.

mysql> Select ORD('Tutorialspoint');
+-----------------------+
| ORD('Tutorialspoint') |
+-----------------------+
|                    84 |
+-----------------------+
1 row in set (0.00 sec)

mysql> Select ASCII('Tutorialspoint');
+-------------------------+
| ASCII('Tutorialspoint') |
+-------------------------+
|                      84 |
+-------------------------+
1 row in set (0.00 sec)

위 예제에서 볼 수 있듯이, 영문자 'T'와 같은 싱글바이트 문자에 대해서는 두 함수 모두 84라는 동일한 값을 반환합니다.

하지만 한글이나 한자처럼 여러 바이트로 구성된 멀티바이트 문자가 입력될 경우에는 결과가 달라집니다. 이때 ORD()는 위 공식에 따라 각 바이트 값을 조합하여 계산한 코드를 반환하는 반면, ASCII()는 첫 번째 바이트의 값만 반환한다는 점에서 차이가 있습니다.

정리

  • 공통점: 가장 왼쪽 문자가 싱글바이트(ASCII 범위) 문자일 때 두 함수는 동일한 값을 반환합니다.
  • 차이점: 멀티바이트 문자가 입력되면 ORD()는 바이트 값을 조합한 코드를 반환하고, ASCII()는 첫 번째 바이트 값만 반환합니다.