모든 열의 길이, 즉 열 값에 포함된 전체 문자 수를 구하려면 MySQL의 char_length() 함수를 사용하면 됩니다. 이 함수는 문자열의 문자 개수를 반환하며, concat() 함수와 함께 사용하면 여러 열의 값을 하나로 연결한 뒤 전체 길이를 한 번에 계산할 수 있습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 만들어 보겠습니다. 여기서는 FirstName과 LastName 두 개의 열이 있으며, 각 행마다 두 값의 길이를 합산한 결과를 구할 것입니다.
mysql> create table DemoTable
(
FirstName varchar(100),
LastName varchar(100)
);
Query OK, 0 rows affected (1.07 sec)2. 데이터 삽입하기
insert 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values('Chris','Brown');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('David','Miller');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Carol','Taylor');
Query OK, 1 row affected (0.14 sec)3. 저장된 데이터 확인하기
select 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Chris | Brown | | David | Miller | | Carol | Taylor | +-----------+----------+ 3 rows in set (0.00 sec)
4. 모든 열의 길이를 하나의 새 열로 출력하는 쿼리
다음은 char_length()와 concat()을 조합하여 각 행의 FirstName과 LastName 길이를 합산해 구하는 쿼리입니다. 별칭(Alias)을 지정하면 결과 열의 이름도 더 직관적으로 표시할 수 있습니다.
mysql> select char_length(concat(FirstName,LastName)) AS TotalLength from DemoTable;
실행 결과는 다음과 같습니다.
+-------------+ | TotalLength | +-------------+ | 10 | | 11 | | 11 | +-------------+ 3 rows in set (0.00 sec)
결과를 보면 'ChrisBrown'은 10자, 'DavidMiller'와 'CarolTaylor'는 각각 11자로 계산되어 단일 새 열(TotalLength)에 표시됩니다. 이처럼 char_length()와 concat()을 조합하면 여러 열의 길이를 손쉽게 합산하여 하나의 열로 확인할 수 있습니다.