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

길이() 대 MySQL의 char_length()?

<시간/>

char_length()는 문자열의 길이를 표시하는 데 사용할 수 있습니다. 매개변수로 포함된 문자열의 길이를 구하는 예를 살펴보겠습니다.

mysql> select char_length('John');

다음은 출력입니다.

+---------------------+
| char_length('John') |
+---------------------+
| 4                   |
+---------------------+
1 row in set (0.00 sec)

length() 함수는 바이트 단위로 측정된 문자열의 길이를 표시하는 데 사용할 수 있습니다. 많은 경우 문자와 바이트 길이는 동일합니다.

다음은 length()

의 예입니다.
mysql> select length('Tim');

다음은 출력입니다.

+---------------------+
| length('Tim')       |
+---------------------+
| 3                   |
+---------------------+
1 row in set (0.00 sec)

length() 및 char_length()는 문자열에서 동일한 결과를 제공합니다. length() 함수는 유니코드를 적용할 때 다른 길이를 제공합니다. 열 이름에 유니코드가 있다고 가정합니다. 유니코드에서는 모든 단일 문자가 2바이트를 차지합니다.

예를 들어 보겠습니다 -

mysql> create table LengthAndCharLengthDemo
-> (
-> FirstName varchar(200),
-> SecondName varchar(255) unicode
-> );
Query OK, 0 rows affected (0.49 sec)

테이블에 레코드 삽입하기.

mysql> insert into LengthAndCharLengthDemo values('John','Ritter');
Query OK, 1 row affected (0.22 sec)

select의 도움으로 테이블의 모든 레코드를 표시합니다.

mysql> select *from LengthAndCharLengthDemo;

다음은 출력입니다.

+-----------+------------+
| FirstName | SecondName |
+-----------+------------+
| John      | Ritter     |
+-----------+------------+
1 row in set (0.00 sec)

길이를 구합시다.

mysql> select char_length(FirstName),length(Secondname) from LengthAndCharLengthDemo
-> where FirstName='John' and Secondname='John';

다음은 출력입니다.

+------------------------+--------------------+
| char_length(FirstName) | length(SecondName) |
+------------------------+--------------------+
| 4                      | 8                  |
+------------------------+--------------------+
1 row in set (0.70 sec)

위의 출력에서 ​​length() 함수는 유니코드 때문에 8바이트를 반환하는 반면 char_length()는 4바이트만 반환하는 것을 볼 수 있습니다.