MySQL의 IN() 연산자 안에 쉼표로 구분된 문자열을 그대로 넣어 조건을 지정할 수 있습니다. 기본 문법은 다음과 같습니다.
select * from yourTableName where yourColumnName IN('yourCommaSeparatedValue');예제 테이블 생성
먼저 예제로 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable1314 -> ( -> Number varchar(100) -> ); Query OK, 0 rows affected (0.53 sec)
다음으로 insert 명령어를 사용하여 테이블에 레코드를 삽입합니다. 각 레코드는 쉼표로 구분된 값들을 하나의 문자열로 저장합니다.
mysql> insert into DemoTable1314 values('45,67,89');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1314 values('10,20,50');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1314 values('90,56,45');
Query OK, 1 row affected (0.23 sec)select 문을 사용하여 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable1314;
출력 결과
+----------+ | Number | +----------+ | 45,67,89 | | 10,20,50 | | 90,56,45 | +----------+ 3 rows in set (0.00 sec)
IN()에서 쉼표로 구분된 문자열 사용하기
아래는 MySQL의 IN()에서 쉼표로 구분된 문자열을 활용하는 쿼리입니다. 컬럼 값 전체가 지정한 문자열과 일치하는 행만 조회됩니다.
mysql> select *from DemoTable1314 where Number IN('10,20,50');
출력 결과
+----------+ | Number | +----------+ | 10,20,50 | +----------+ 1 row in set (0.02 sec)
위 예제에서 볼 수 있듯이, Number 컬럼의 값이 '10,20,50'과 정확히 일치하는 행만 반환되었습니다. 참고로 이 방식은 컬럼에 저장된 값 자체가 쉼표로 구분된 하나의 문자열일 때 유용하며, 만약 문자열 내부의 개별 값을 기준으로 검색하려면 FIND_IN_SET() 함수를 사용하는 것이 더 적합합니다.