Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

쉼표로 구분된 목록의 일부에서 레코드를 검색하는 MySQL 쿼리?

<시간/>

쉼표로 구분된 목록의 일부에서 레코드를 검색하려면 내장 함수 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)