쉼표로 구분된 목록의 일부에서 레코드를 검색하려면 내장 함수 FIND_IN_SET()을 사용할 수 있습니다.
먼저 테이블을 생성하겠습니다 -
mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Marks varchar(200) ); Query OK, 0 rows affected (0.61 sec)
다음은 삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하는 쿼리입니다 -
mysql> insert into DemoTable(Name,Marks) values('Larry','98,34,56,89'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable(Name,Marks) values('Chris','67,87,92,99'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable(Name,Marks) values('Robert','33,45,69,92'); Query OK, 1 row affected (0.22 sec)
다음은 select 명령 -
을 사용하여 테이블의 레코드를 표시하는 쿼리입니다.mysql> select *from DemoTable;
이것은 다음과 같은 출력을 생성합니다 -
+----+--------+-------------+ | Id | Name | Marks | +----+--------+-------------+ | 1 | Larry | 98,34,56,89 | | 2 | Chris | 67,87,92,99 | | 3 | Robert | 33,45,69,92 | +----+--------+-------------+ 3 rows in set (0.00 sec)
다음은 쉼표로 구분된 목록의 일부에서 레코드를 검색하는 쿼리입니다. 여기에서 99점을 받은 학생의 기록을 얻습니다 −
mysql> select Id,Name from DemoTable where find_in_set('99',Marks) > 0;
이것은 다음과 같은 출력을 생성합니다 -
+----+-------+ | Id | Name | +----+-------+ | 2 | Chris | +----+-------+ 1 row in set (0.00 sec)