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

MySQL에서 두 개의 필드를 동시에 검색하여 특정 이름과 성 조회하기

MySQL에서 여러 필드를 동시에 검색해야 하는 경우가 종종 있습니다. 예를 들어, 직원 테이블에서 이름(FirstName)이 'Joh'로 시작하고 성(LastName)이 'Sm'으로 시작하는 레코드만 조회하고 싶다면 LIKE 연산자AND 논리 연산자를 함께 사용하면 됩니다.

1. 샘플 테이블 생성하기

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

mysql> create table DemoTable
(
    EmployeeFirstName varchar(50),
    EmployeeLastName varchar(50)
);
Query OK, 0 rows affected (0.64 sec)

2. 테이블에 데이터 삽입하기

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

mysql> insert into DemoTable values('John','Smith');
Query OK, 1 row affected (0.61 sec)
mysql> insert into DemoTable values('David','Miller');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('John','Doe');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('Adam','Smith');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('Carol','Taylor');
Query OK, 1 row affected (0.08 sec)

3. 전체 레코드 확인하기

SELECT 문을 사용해 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------------------+------------------+
| EmployeeFirstName | EmployeeLastName |
+-------------------+------------------+
| John              | Smith            |
| David             | Miller           |
| John              | Doe              |
| Adam              | Smith            |
| Carol             | Taylor           |
+-------------------+------------------+
5 rows in set (0.00 sec)

4. 두 필드를 동시에 검색하는 방법

이제 핵심인 검색 쿼리입니다. 이름은 'Joh'로 시작하고 성은 'Sm'으로 시작하는 레코드를 조회하려면 WHERE 절에서 각 필드에 대해 LIKE 조건을 지정하고 AND로 연결하면 됩니다.

mysql> select *from DemoTable
where EmployeeFirstName LIKE 'Joh%'
and EmployeeLastName LIKE 'Sm%';

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

+-------------------+------------------+
| EmployeeFirstName | EmployeeLastName |
+-------------------+------------------+
| John              | Smith            |
+-------------------+------------------+
1 row in set (0.00 sec)

결과를 보면 'John Doe'나 'Adam Smith'처럼 하나의 조건만 만족하는 레코드는 제외되고, 두 조건을 모두 충족하는 'John Smith'만 정확히 조회된 것을 확인할 수 있습니다.

정리

MySQL에서 여러 필드를 동시에 부분 일치 검색할 때는 다음 사항을 기억하세요.

  • LIKE '%패턴': 와일드카드(%)를 활용해 문자열의 시작, 중간, 끝 위치를 유연하게 매칭할 수 있습니다.
  • AND 연산자: 여러 조건을 모두 만족하는 레코드만 반환합니다. OR을 사용하면 조건 중 하나라도 만족하는 레코드가 반환됩니다.
  • 대소문자 구분 여부는 컬럼의 collation 설정에 따라 달라지므로 필요 시 BINARY 키워드나 적절한 collation을 사용하세요.