Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khác biệt giữa hàm INSTR() và FIND_IN_SET() trong MySQL


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.