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

MySQL IN() 절에서 쉼표로 구분된 문자열을 사용하는 방법

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() 함수를 사용하는 것이 더 적합합니다.