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

MySQL에서 OR 조건을 활용해 테이블의 대체 레코드 조회하기

테이블에서 여러 개의 대체 레코드를 한 번에 조회하려면 OR 조건을 사용하면 됩니다. 기본 문법은 다음과 같습니다.

select * from yourTableName where yourColumnName=yourValue1 OR yourColumnName=yourValue2 ...N;

예제 테이블 생성하기

먼저 실습용 테이블을 생성해 보겠습니다.

mysql> create table DemoTable772 (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(100),
   Age int
);
Query OK, 0 rows affected (0.76 sec)

레코드 삽입하기

INSERT 명령어를 사용해 테이블에 샘플 데이터를 입력합니다.

mysql> insert into DemoTable772(Name,Age) values('Chris',21);
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable772(Name,Age) values('Robert',26);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable772(Name,Age) values('Mike',27);
Query OK, 1 row affected (0.35 sec)
mysql> insert into DemoTable772(Name,Age) values('Sam',24);
Query OK, 1 row affected (0.45 sec)
mysql> insert into DemoTable772(Name,Age) values('Carol',28);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable772(Name,Age) values('David',25);
Query OK, 1 row affected (0.93 sec)

전체 레코드 확인하기

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

mysql> select *from DemoTable772;

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

+----+--------+------+
| Id | Name   | Age  |
+----+--------+------+
|  1 | Chris  | 21   |
|  2 | Robert | 26   |
|  3 | Mike   | 27   |
|  4 | Sam    | 24   |
|  5 | Carol  | 28   |
|  6 | David  | 25   |
+----+--------+------+
6 rows in set (0.00 sec)

OR 조건으로 특정 레코드 조회하기

이제 OR 조건을 활용한 쿼리를 살펴보겠습니다. 아래 예제는 Id가 2, 4, 6인 레코드를 동시에 조회하는 방법입니다.

mysql> select *from DemoTable772 where Id=2 OR Id=4 OR Id=6;

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

+----+--------+------+
| Id | Name   | Age  |
+----+--------+------+
|  2 | Robert | 26   |
|  4 | Sam    | 24   |
|  6 | David  | 25   |
+----+--------+------+
3 rows in set (0.01 sec)

참고: IN 연산자로 더 간결하게 작성하기

동일한 컬럼에 대해 여러 값을 비교할 때는 OR 조건 대신 IN 연산자를 사용하면 코드가 더 간결하고 가독성이 좋아집니다.

mysql> select *from DemoTable772 where Id IN (2, 4, 6);

위 쿼리는 앞선 OR 조건 쿼리와 완전히 동일한 결과를 반환하며, 값이 많아질수록 유지보수 측면에서 훨씬 유리합니다.