কম্পিউটার টিউটোরিয়াল

MySQL에서 FIND_IN_SET으로 콤마 구분 문자열 파라미터에 다중 값 매칭하기

FIND_IN_SET(찾을값, '콤마,구분,문자열')은 콤마로 구분된 문자열 리스트에서 값 존재 여부를 확인합니다. 단일 파라미터로 다중 값 검색 시 유용합니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable1817 (
    -> EmployeeName VARCHAR(20),
    -> CountryName VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1817 VALUES('Chris','AUS');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1817 VALUES('David','UK');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1817 VALUES('Bob','US');
Query OK, 1 row affected (0.00 sec)

데이터 조회

mysql> SELECT * FROM DemoTable1817;
+--------------+-------------+
| EmployeeName | CountryName |
+--------------+-------------+
| Chris        | AUS         |
| David        | UK          |
| Bob          | US          |
+--------------+-------------+
3 rows in set (0.00 sec)

CountryName이 'US' 또는 'UK'인 행 조회

mysql> SELECT * FROM DemoTable1817 WHERE FIND_IN_SET(CountryName, 'US,UK');
+--------------+-------------+
| EmployeeName | CountryName |
+--------------+-------------+
| David        | UK          |
| Bob          | US          |
+--------------+-------------+
2 rows in set (0.00 sec)

주의: FIND_IN_SET은 인덱스를 타지 않습니다(풀스캔). 대용량이면 WHERE CountryName IN ('US','UK')가 더 효율적. IN 리스트는 동적 쿼리 구성 시 파라미터 바인딩이 번거로울 때 FIND_IN_SET이 대안이 될 수 있습니다.

  1. MySQL-এ একক কোয়েরিতে একাধিক সারি ইনসার্ট করা

  2. MySQL-এ GREATEST() দিয়ে একাধিক কলাম একসাথে সর্ট করা

  3. MySQL-এ একাধিক LIKE অপারেটর একসাথে ব্যবহার করা (OR কন্ডিশন সহ)

  4. MySQL-এ একাধিক কলাম একসাথে আপডেট করা (সিঙ্গল কুয়েরি)