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

MySQL에서 특정 필드의 모든 행에 포함된 전체 문자 수 계산하는 방법

MySQL CHAR_LENGTH와 SUM으로 전체 문자 수 구하기

MySQL에서 특정 필드(컬럼)의 모든 행에 포함된 문자 수의 총합을 계산하려면 char_length() 함수와 sum() 함수를 함께 사용하면 됩니다.

기본 문법은 다음과 같습니다.

select sum(char_length(yourColumnName)) AS anyAliasName from yourTableName;

예제 테이블 생성

문법을 이해하기 위해 먼저 예제용 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table CountAllCharactersDemo
    -> (
    -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserName varchar(20),
    -> UserSubject text
    -> );
Query OK, 0 rows affected (0.47 sec)

샘플 데이터 삽입

insert 명령을 사용해 테이블에 레코드를 몇 개 삽입합니다. 쿼리는 다음과 같습니다.

mysql> insert into CountAllCharactersDemo(UserName,UserSubject)
values('Larry','Introduction To Java');
Query OK, 1 row affected (0.19 sec)
mysql> insert into CountAllCharactersDemo(UserName,UserSubject)
values('Mike','Introduction To Computer Networks');
Query OK, 1 row affected (0.21 sec)
mysql> insert into CountAllCharactersDemo(UserName,UserSubject)
values('Sam','Introduction To C');
Query OK, 1 row affected (0.18 sec)
mysql> insert into CountAllCharactersDemo(UserName,UserSubject)
values('Carol','Introduction To Python');
Query OK, 1 row affected (0.25 sec)
mysql> insert into CountAllCharactersDemo(UserName,UserSubject)
values('David','Introduction To Spring And Hibernate Framework');
Query OK, 1 row affected (0.15 sec)

저장된 데이터 확인

select 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from CountAllCharactersDemo;

실행 결과는 다음과 같습니다.

+--------+----------+------------------------------------------------+
| UserId | UserName | UserSubject                                    |
+--------+----------+------------------------------------------------+
| 1      | Larry    | Introduction To Java                           |
| 2      | Mike     | Introduction To Computer Networks              |
| 3      | Sam      | Introduction To C                              |
| 4      | Carol    | Introduction To Python                         |
| 5      | David    | Introduction To Spring And Hibernate Framework |
+--------+----------+------------------------------------------------+
5 rows in set (0.00 sec)

Case 1: 필드 전체 문자 수의 총합 계산

MySQL에서 특정 필드의 모든 행에 있는 문자 수를 합산하는 쿼리입니다. sum() 함수 안에 char_length() 함수를 넣어 전체 길이를 한 번에 구할 수 있습니다.

mysql> select sum(char_length(UserSubject)) AS AllCharactersLength from
CountAllCharactersDemo;

실행 결과는 다음과 같습니다.

+---------------------+
| AllCharactersLength |
+---------------------+
| 138                 |
+---------------------+
1 row in set (0.00 sec)

위 결과를 통해 UserSubject 컬럼의 모든 행에 저장된 문자 수가 총 138자임을 확인할 수 있습니다.

Case 2: 각 행별 문자 길이 계산

전체 합계뿐만 아니라 각 행별로 문자 길이를 개별적으로 확인할 수도 있습니다. 이 경우에는 char_length() 함수만 단독으로 사용합니다.

mysql> select UserId,UserName,UserSubject,char_length(UserSubject) AS Length from
CountAllCharactersDemo;

실행 결과는 다음과 같습니다.

+--------+----------+------------------------------------------------+--------+
| UserId | UserName | UserSubject                                    | Length |
+--------+----------+------------------------------------------------+--------+
| 1      | Larry    | Introduction To Java                           | 20     |
| 2      | Mike     | Introduction To Computer Networks              | 33     |
| 3      | Sam      | Introduction To C                              | 17     |
| 4      | Carol    | Introduction To Python                         | 22     |
| 5      | David    | Introduction To Spring And Hibernate Framework | 46     |
+--------+----------+------------------------------------------------+--------+
5 rows in set (0.00 sec)

정리

- 전체 합계: sum(char_length(컬럼명))을 사용하면 해당 컬럼의 모든 행 문자 수를 한 번에 구할 수 있습니다.
- 행별 길이: char_length(컬럼명)만 사용하면 각 행의 문자 길이를 개별적으로 확인할 수 있습니다.
- 참고로 char_length()는 문자 기준으로 길이를 반환하므로, 한글처럼 멀티바이트 문자가 포함된 데이터에서도 정확한 문자 수를 계산할 수 있습니다. 바이트 단위가 필요하다면 length() 함수를 대신 사용하면 됩니다.