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

MySQL SELECT IN() 절에 단일 값을 사용할 수 있을까요?

MySQL IN() 절에서 단일 값 설정하기

네, MySQL의 IN() 연산자에는 단일 값도 사용할 수 있습니다. 일반적으로 IN()은 여러 값을 비교할 때 사용되지만, 값이 하나만 있어도 정상적으로 동작합니다.

실제 예제를 통해 확인해 보겠습니다. 먼저 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> FirstName varchar(20)
    -> );
Query OK, 0 rows affected (0.65 sec)

다음으로 INSERT 명령어를 사용해 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.42 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Bob');
Query OK, 1 row affected (0.08 sec)

테이블 전체 데이터 조회

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

mysql> select *from DemoTable;

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

+-----------+
| FirstName |
+-----------+
| Chris     |
| David     |
| Mike      |
| Bob       |
+-----------+
4 rows in set (0.00 sec)

IN()에 단일 값 적용하기

아래는 IN() 안에 단일 값을 넣어 조건을 지정하는 쿼리입니다.

mysql> select *from DemoTable where FirstName IN('Mike');

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

+-----------+
| FirstName |
+-----------+
| Mike      |
+-----------+
1 row in set (0.00 sec)

결과를 보면 'Mike'라는 단일 값만으로도 IN() 조건이 올바르게 작동하여 해당 레코드 하나만 반환된 것을 확인할 수 있습니다.

참고 사항

IN()에 값이 하나뿐인 경우 사실상 등호(=) 연산자와 동일하게 동작합니다. 즉, WHERE FirstName = 'Mike'와 같은 결과를 얻습니다. 다만 애플리케이션 코드에서 조건 값의 개수가 동적으로 변할 수 있는 경우, 단일 값이든 여러 값이든 동일한 IN() 구문을 유지하면 코드의 일관성을 유지하는 데 도움이 됩니다.