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

MySQL에서 두 번째 자리에 공백이 있는 레코드 조회하는 방법

MySQL SUBSTR() 함수로 두 번째 자리에 공백이 있는 레코드 찾기

특정 컬럼 값의 두 번째 위치에 공백이 포함된 레코드를 찾으려면 SUBSTR() 함수를 사용하면 됩니다. 기본 문법은 다음과 같습니다.

select * from yourTableName
where substr(yourColumnName, 2, 1) = ' ';

SUBSTR(컬럼명, 2, 1)은 해당 컬럼 값에서 두 번째 문자부터 1글자를 추출합니다. 이 추출 결과가 공백(' ')과 일치하는 행만 필터링되므로, 원하는 조건의 레코드를 정확하게 조회할 수 있습니다.

실제 동작 과정을 예제와 함께 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable1365
-> (
-> Value varchar(20)
-> );
Query OK, 0 rows affected (0.66 sec)

2단계: 데이터 삽입

insert 명령으로 샘플 레코드를 입력합니다. 이때 두 번째 자리에 공백이 있는 값과 그렇지 않은 값을 함께 넣어 조건 비교가 가능하도록 합니다.

mysql> insert into DemoTable1365 values('9756757474');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1365 values('3 45322333');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1365 values('8974646363');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1365 values('9 566363622');
Query OK, 1 row affected (0.17 sec)

3단계: 전체 레코드 확인

select 문으로 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select * from DemoTable1365;

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

+-------------+
| Value |
+-------------+
| 9756757474 |
| 3 45322333 |
| 8974646363 |
| 9 566363622 |
+-------------+
4 rows in set (0.00 sec)

4단계: 두 번째 자리에 공백이 있는 레코드 조회

'3 4532'처럼 두 번째 위치에 공백이 있는 레코드만 찾는 쿼리는 다음과 같습니다.

mysql> select * from DemoTable1365
-> where substr(Value, 2, 1) = ' ';

실행 결과:

+-------------+
| Value |
+-------------+
| 3 45322333 |
| 9 566363622 |
+-------------+
2 rows in set (0.00 sec)

결과를 보면 두 번째 자리에 공백이 포함된 '3 45322333'과 '9 566363622' 두 건만 정확히 반환된 것을 확인할 수 있습니다. 이처럼 SUBSTR() 함수를 활용하면 문자열 내 특정 위치의 문자를 손쉽게 검사하여 원하는 패턴의 데이터를 효율적으로 필터링할 수 있습니다.