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

MySQL 쿼리로 'a', 'b', 'c'로 시작하는 모든 이름 조회하는 방법

LIKE 연산자와 OR 조합으로 특정 문자로 시작하는 이름 찾기

MySQL에서 'a', 'b', 'c' 중 하나로 시작하는 이름을 모두 찾으려면 LIKE 연산자와 OR 연산자를 함께 사용해야 합니다. 기본 문법은 다음과 같습니다.

SELECT * FROM yourTableName WHERE yourColumnName like 'A%' or yourColumnName like 'B%' or yourColumnName like 'C%';

위 쿼리는 이름이 오직 'A', 'B', 'C'로 시작하는 레코드만 조회합니다. 문법을 이해하기 위해 실제 테이블을 생성하고 예제를 살펴보겠습니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table AllNamesStartWithAorBorC
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> EmployeeName varchar(20),
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.70 sec)

2. 샘플 데이터 삽입

INSERT 명령어를 사용하여 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into AllNamesStartWithAorBorC(EmployeeName) values('Adam');
Query OK, 1 row affected (0.19 sec)
mysql> insert into AllNamesStartWithAorBorC(EmployeeName) values('Bob');
Query OK, 1 row affected (0.16 sec)
mysql> insert into AllNamesStartWithAorBorC(EmployeeName) values('baden');
Query OK, 1 row affected (0.48 sec)
mysql> insert into AllNamesStartWithAorBorC(EmployeeName) values('Carol');
Query OK, 1 row affected (0.41 sec)
mysql> insert into AllNamesStartWithAorBorC(EmployeeName) values('Mike');
Query OK, 1 row affected (0.13 sec)
mysql> insert into AllNamesStartWithAorBorC(EmployeeName) values('Larry');
Query OK, 1 row affected (0.16 sec)
mysql> insert into AllNamesStartWithAorBorC(EmployeeName) values('Chris');
Query OK, 1 row affected (0.18 sec)

3. 전체 데이터 확인

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from AllNamesStartWithAorBorC;

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

+----+--------------+
| Id | EmployeeName |
+----+--------------+
|  1 | Adam         |
|  2 | Bob          |
|  3 | baden        |
|  4 | Carol        |
|  5 | Mike         |
|  6 | Larry        |
|  7 | Chris        |
+----+--------------+
7 rows in set (0.00 sec)

4. A, B, C로 시작하는 이름 조회

'a', 'b', 'c'로 시작하는 이름을 찾는 쿼리는 다음과 같습니다.

mysql> select *from AllNamesStartWithAorBorC where EmployeeName like 'A%' or EmployeeName like 'B%' or
    -> EmployeeName like 'C%';

실행 결과는 아래와 같습니다.

+----+--------------+
| Id | EmployeeName |
+----+--------------+
|  1 | Adam         |
|  2 | Bob          |
|  3 | baden        |
|  4 | Carol        |
|  7 | Chris        |
+----+--------------+
5 rows in set (0.00 sec)

추가 팁: REGEXP 활용하기

조건이 많아질 경우 OR 절이 길어지면 가독성이 떨어질 수 있습니다. 이때 정규식 함수인 REGEXP(또는 RLIKE)를 사용하면 더 간결하게 작성할 수 있습니다.

SELECT * FROM AllNamesStartWithAorBorC
WHERE EmployeeName REGEXP '^[ABC]';

'^[ABC]'는 이름이 대괄호 안의 문자(A, B, C) 중 하나로 시작함을 의미합니다. MySQL의 기본 콜레이션은 대소문자를 구분하지 않으므로 위 결과에서 'baden'처럼 소문자로 시작하는 이름도 함께 검색됩니다.