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

MySQL IN()을 사용하여 쉼표로 구분된 값에서 레코드를 가져오시겠습니까?

<시간/>

MySQL IN() 대신 FIND_IN_SET()을 사용하십시오. 먼저 −

를 생성해 보겠습니다.
mysql> create table DemoTable1423
   -> (
   -> CountryName varchar(100)
   -> );
Query OK, 0 rows affected (0.51 sec)

insert −

를 사용하여 테이블에 일부 레코드 삽입
mysql> insert into DemoTable1423 values('AUS,UK');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable1423 values('US');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable1423 values('AUS,UK,US');
Query OK, 1 row affected (0.13 sec)

select −

를 사용하여 테이블의 모든 레코드 표시
mysql> select * from DemoTable1423;

이것은 다음과 같은 출력을 생성합니다 -

+-------------+
| CountryName |
+-------------+
| AUS,UK      |
| US          |
| AUS,UK,US   |
+-------------+
3 rows in set (0.00 sec)

다음은 FIND_IN_SET()−

를 사용하여 레코드를 가져오는 쿼리입니다.
mysql> select * from DemoTable1423 where find_in_set('US',CountryName);

이것은 다음과 같은 출력을 생성합니다 -

+-------------+
| CountryName |
+-------------+
| US          |
| AUS,UK,US   |
+-------------+
2 rows in set (0.00 sec)