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

MySQL 쿼리로 필드 값에 포함된 쉼표 개수 세는 방법

데이터베이스 작업 중에는 하나의 필드(컬럼) 값 안에 포함된 특정 문자, 예를 들어 쉼표(,)의 개수를 확인해야 하는 경우가 종종 있습니다. MySQL에서는 LENGTH() 함수와 REPLACE() 함수를 조합하면 복잡한 로직 없이 간단하게 해결할 수 있습니다.

기본 문법

SELECT LENGTH(yourColumnName) - LENGTH(REPLACE(yourColumnName, ',', '')) AS anyAliasName FROM yourTableName;

동작 원리는 매우 직관적입니다. 먼저 전체 문자열의 길이를 구한 뒤, 쉼표를 모두 제거한 문자열의 길이를 빼면 그 차이가 곧 쉼표의 개수가 됩니다.

예제: 테이블 생성하기

먼저 실습용 테이블을 생성합니다.

mysql> CREATE TABLE DemoTable1510
-> (
-> Value VARCHAR(50)
-> );
Query OK, 0 rows affected (6.75 sec)

레코드 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> INSERT INTO DemoTable1510 VALUES('20,35');
Query OK, 1 row affected (0.57 sec)
mysql> INSERT INTO DemoTable1510 VALUES('45,67,89');
Query OK, 1 row affected (0.99 sec)
mysql> INSERT INTO DemoTable1510 VALUES('90,97,101,190');
Query OK, 1 row affected (1.15 sec)

저장된 데이터 확인

SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.

mysql> SELECT * FROM DemoTable1510;

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

+---------------+
| Value |
+---------------+
| 20,35 |
| 45,67,89 |
| 90,97,101,190 |
+---------------+
3 rows in set (0.00 sec)

쉼표 개수를 세는 쿼리 실행

이제 필드 값에서 쉼표의 개수를 계산하는 쿼리입니다.

mysql> SELECT LENGTH(Value) - LENGTH(REPLACE(Value, ',', '')) AS NumberOfComma FROM DemoTable1510;

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

+---------------+
| NumberOfComma |
+---------------+
| 1 |
| 2 |
| 3 |
+---------------+
3 rows in set (0.00 sec)

출력 결과를 보면 '20,35'는 쉼표 1개, '45,67,89'는 2개, '90,97,101,190'은 3개로 정확하게 계산된 것을 확인할 수 있습니다. 이 방법은 쉼표뿐만 아니라 공백, 하이픈 등 다른 문자의 개수를 셀 때도 동일하게 응용할 수 있으므로, CSV 형태로 저장된 데이터를 다룰 때 특히 유용합니다.