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

MySQL에서 하이픈(-) 두 개만 포함된 데이터 검색 방법

MySQL에서 문자열에 하이픈 기호가 정확히 두 개 포함된 레코드를 검색하려면 LIKE 연산자를 활용하면 됩니다. 핵심 아이디어는 '%--%' 패턴으로 하이픈 두 개가 포함된 값을 찾되, '%---%' 패턴(하이픈 세 개 이상)은 제외하는 것입니다.

1. 샘플 테이블 생성

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

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Password varchar(100)
    );
Query OK, 0 rows affected (1.27 sec)

2. 데이터 삽입

INSERT 명령을 사용하여 하이픈 개수가 서로 다른 여러 레코드를 추가합니다.

mysql> insert into DemoTable(Password) values('John@--123');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(Password) values('---Carol234');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(Password) values('--David987');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(Password) values('Mike----53443');
Query OK, 1 row affected (0.30 sec)

3. 전체 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과:

+----+---------------+
| Id | Password |
+----+---------------+
| 1 | John@--123 |
| 2 | ---Carol234 |
| 3 | --David987 |
| 4 | Mike----53443 |
+----+---------------+
4 rows in set (0.00 sec)

4. 하이픈 두 개만 포함된 레코드 검색 쿼리

다음 쿼리는 하이픈 기호가 정확히 두 개 포함된 레코드만 조회합니다.

mysql> select *from DemoTable
    where Password like '%--%'
    and Password not like '%---%';

실행 결과:

+----+------------+
| Id | Password |
+----+------------+
| 1 | John@--123 |
| 3 | --David987 |
+----+------------+
2 rows in set (0.06 sec)

쿼리 동작 원리

  • Password like '%--%': 하이픈 두 개 이상이 포함된 모든 레코드를 찾습니다.
  • Password not like '%---%': 하이픈이 세 개 이상 포함된 레코드를 제외합니다.

두 조건을 AND로 결합하면 결과적으로 하이픈이 정확히 두 개만 포함된 'John@--123'과 '--David987' 두 레코드만 반환됩니다. 참고로 '---Carol234'(하이픈 3개)와 'Mike----53443'(하이픈 4개)는 조건에서 제외된 것을 확인할 수 있습니다.