>  기사  >  데이터 베이스  >  MySQL LENGTH()와 CHAR_LENGTH() 함수의 차이점은 무엇입니까?

MySQL LENGTH()와 CHAR_LENGTH() 함수의 차이점은 무엇입니까?

WBOY
WBOY앞으로
2023-09-02 16:57:071094검색

MySQL LENGTH() 和 CHAR_LENGTH() 函数有什么区别?

이 두 함수는 모두 문자열 함수이며 문자열에 있는 문자 수를 반환합니다. 그러나 CHAR_LENGTH() 함수는 문자열 길이를 "문자" 단위로 측정하는 반면 LENGTH() 함수는 문자열 길이를 "바이트" 단위로 측정한다는 점에서 다릅니다. 즉, CHAR_LENGTH() 함수는 다중 바이트 안전하다고 말할 수 있습니다. 즉, 문자가 단일 바이트인지 다중 바이트인지를 무시합니다. 예를 들어 문자열에 2바이트 문자 4개가 포함된 경우 LENGTH()입니다.

이 함수는 8을 반환하고 CHAR_LENGTH() 함수는 4를 반환합니다. 이런 의미에서 CHAR_LENGTH()는 LENGTH() 함수보다 더 정확한 결과를 제공한다고 말할 수 있습니다.

이 차이는 특히 대부분의 문자가 2바이트로 인코딩되는 유니코드 또는 바이트 수가 달라지는 UTF-8과 관련이 있습니다. 아래 예는 다음을 보여줍니다. -

Example

아래 예에서는 먼저 문자열 'Gaurav'가 유니코드, 2바이트 문자 집합인 ucs2 strong>로 변환됩니다. 그런 다음 결과 집합의 차이를 관찰할 수 있습니다. 즉, LENGTH()는 길이를 바이트 단위로 반환하는 반면 CHAR_LENGTH()는 길이를 문자 단위로 반환합니다.

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

mysql> Select Char_length(@A), LENGTH(@A);

+-----------------+------------+
| Char_length(@A) | LENGTH(@A) |
+-----------------+------------+
| 6               | 12         |
+-----------------+------------+

1 row in set (0.03 sec)

이제 아래 예에서는 UTF-8의 특수 문자를 사용하고 있으며 문자 집합의 바이트 수가 다릅니다. 그런 다음 결과 집합과의 차이점을 관찰할 수 있습니다.

rreee

위 내용은 MySQL LENGTH()와 CHAR_LENGTH() 함수의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제