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

어떤 함수가 MySQL LENGTH() 함수의 동의어입니까?


알다시피 MySQL OCTET_LENGTH() 함수는 문자열 길이도 '바이트' 단위로 측정하므로 MySQL LENGTH() 함수의 동의어입니다. 이 함수의 구문은 OCTET_LENGTH(Str)입니다. 여기서 Str은 문자 길이를 반환해야 하는 문자열입니다.

LENGTH() 함수처럼 멀티바이트 안전하지도 않습니다. 예를 들어 문자열에 4개의 2바이트 문자가 포함된 경우 OCTET_LENGTH() 함수는 8을 반환합니다. 아래 예에서 설명합니다. -

예시

mysql> Select OCTET_LENGTH('tutorialspoint');
+--------------------------------+
| OCTET_LENGTH('tutorialspoint') |
+--------------------------------+
|                             14 |
+--------------------------------+
1 row in set (0.00 sec)

위의 결과 집합은 'tutorialspoint' 문자열의 길이가 아직 유니코드 문자로 변환되지 않았기 때문에 14임을 보여줍니다. 다음 쿼리는 그것을 유니코드 문자로 변환합니다 -

mysql> SET @A = CONVERT('tutorialspoint' USING ucs2);
Query OK, 0 rows affected (0.02 sec)

유니코드로 문자열을 변환한 후 결과는 14 대신 28이 됩니다. 왜냐하면 유니코드에서 단일 문자는 아래와 같이 2바이트를 사용하기 때문입니다. -

mysql> Select OCTET_LENGTH(@A);
+------------------+
| OCTET_LENGTH(@A) |
+------------------+
|               28 |
+------------------+
1 row in set (0.00 sec)