이 두 함수는 모두 문자열 함수이며 문자열에 있는 문자 수를 반환합니다. 그러나 CHAR_LENGTH() 함수는 문자열 길이를 "문자" 단위로 측정하는 반면 LENGTH() 함수는 문자열 길이를 "바이트" 단위로 측정한다는 점에서 다릅니다. 즉, CHAR_LENGTH() 함수는 다중 바이트 안전하다고 말할 수 있습니다. 즉, 문자가 단일 바이트인지 다중 바이트인지를 무시합니다. 예를 들어 문자열에 2바이트 문자 4개가 포함된 경우 LENGTH()입니다.
이 함수는 8을 반환하고 CHAR_LENGTH() 함수는 4를 반환합니다. 이런 의미에서 CHAR_LENGTH()는 LENGTH() 함수보다 더 정확한 결과를 제공한다고 말할 수 있습니다.
이 차이는 특히 대부분의 문자가 2바이트로 인코딩되는 유니코드 또는 바이트 수가 달라지는 UTF-8과 관련이 있습니다. 아래 예는 다음을 보여줍니다. -
아래 예에서는 먼저 문자열 '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 중국어 웹사이트의 기타 관련 기사를 참조하세요!