Cả hai hàm tìm chuỗi từ đối số nhưng có khác biệt:
- FIND_IN_SET() dùng danh sách chuỗi là một chuỗi chứa các chuỗi con phân tách bằng dấu phẩy. INSTR() dùng chuỗi gốc để tìm vị trí lần đầu tiên của chuỗi con.
- Với số nguyên, FIND_IN_SET() phù hợp hơn INSTR(). Ví dụ:
Ví dụ
mysql> SELECT IF(INSTR('10,11,12,13', 2) > 0, 1, 0) AS Result;
+--------+
| Result |
+--------+
| 1 |
+--------+
1 row in set (0.05 sec)
mysql> SELECT IF(FIND_IN_SET(2, '10,11,12,13') > 0, 1, 0) AS Result;
+--------+
| Result |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)
INSTR() trả về 1 dù '2' không là phần tử riêng biệt, FIND_IN_SET() trả về 0 - đúng vì '2' không có trong danh sách phân tách dấu phẩy.