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

MySQL에서 필드 값이 5자 미만인 행을 조회하는 방법

MySQL에서 특정 필드(컬럼)의 값 길이가 5자 미만인 행을 조회하려면 LENGTH() 함수를 사용하면 됩니다. LENGTH() 함수는 문자열의 바이트 길이를 반환하며, WHERE 절과 함께 사용하면 원하는 조건의 데이터만 손쉽게 추출할 수 있습니다.

기본 문법

필드 값이 5자 미만인 행을 가져오는 기본 문법은 다음과 같습니다.

SELECT * FROM yourTableName
WHERE LENGTH(yourColumnName) < 5;

예제 테이블 생성

실제 동작을 이해하기 위해 예제 테이블을 먼저 생성해 보겠습니다. 아래 쿼리로 우편번호를 저장할 테이블을 만듭니다.

mysql> create table fieldLessThan5Chars
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> yourZipCode varchar(10)
-> );
Query OK, 0 rows affected (0.52 sec)

샘플 데이터 삽입

이제 INSERT 명령을 사용해 다양한 길이의 우편번호 데이터를 입력합니다. 일부러 5자 미만인 값들도 함께 넣어 결과를 확인할 수 있도록 했습니다.

mysql> insert into fieldLessThan5Chars(yourZipCode) values('35801');
Query OK, 1 row affected (0.10 sec)
mysql> insert into fieldLessThan5Chars(yourZipCode) values('3580');
Query OK, 1 row affected (0.20 sec)
mysql> insert into fieldLessThan5Chars(yourZipCode) values('90001');
Query OK, 1 row affected (0.40 sec)
mysql> insert into fieldLessThan5Chars(yourZipCode) values('100');
Query OK, 1 row affected (0.20 sec)
mysql> insert into fieldLessThan5Chars(yourZipCode) values('10');
Query OK, 1 row affected (0.17 sec)
mysql> insert into fieldLessThan5Chars(yourZipCode) values('0');
Query OK, 1 row affected (0.15 sec)
mysql> insert into fieldLessThan5Chars(yourZipCode) values('90209');
Query OK, 1 row affected (0.11 sec)
mysql> insert into fieldLessThan5Chars(yourZipCode) values('33124');
Query OK, 1 row affected (0.20 sec)

전체 데이터 확인

SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from fieldLessThan5Chars;

실행 결과는 다음과 같습니다. 총 8개의 레코드가 저장되어 있습니다.

+----+-------------+
| Id | yourZipCode |
+----+-------------+
| 1 | 35801 |
| 2 | 3580 |
| 3 | 90001 |
| 4 | 100 |
| 5 | 10 |
| 6 | 0 |
| 7 | 90209 |
| 8 | 33124 |
+----+-------------+
8 rows in set (0.00 sec)

LENGTH() 함수로 5자 미만 행 조회하기

이제 LENGTH() 함수를 활용해 우편번호 길이가 5자 미만인 모든 행을 조회하는 실제 쿼리입니다.

mysql> select *from fieldLessThan5Chars where length(yourZipCode) < 5;

출력 결과

길이가 4자 이하인 레코드만 정상적으로 필터링되어 반환된 것을 확인할 수 있습니다.

+----+-------------+
| Id | yourZipCode |
+----+-------------+
| 2 | 3580 |
| 4 | 100 |
| 5 | 10 |
| 6 | 0 |
+----+-------------+
4 rows in set (0.00 sec)

참고 사항

MySQL에서 문자열 길이를 구하는 함수는 두 가지가 있습니다. LENGTH()는 문자열의 바이트 수를 반환하고, CHAR_LENGTH()(또는 CHARACTER_LENGTH())는 문자 수를 반환합니다. 한글처럼 멀티바이트 문자가 포함될 가능성이 있는 컬럼을 다룰 때는 CHAR_LENGTH()를 사용하는 것이 더 정확합니다. 영문과 숫자로만 구성된 데이터라면 LENGTH()와 CHAR_LENGTH()의 결과가 동일하게 나타납니다.