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

Trong MySQL, hàm FIELD() khác hàm FIND_IN_SET() như thế nào?


Như chúng ta biết, cả hai hàm đều dùng để tìm chuỗi từ các đối số được cung cấp nhưng có những khác biệt đáng kể như sau:

FIND_IN_SET() - hàm sử dụng danh sách chuỗi bản thân là một chuỗi chứa các chuỗi con được phân tách bằng dấu phẩy. Trong khi đó, hàm FIELD() chứa danh sách các chuỗi khác nhau mà trong đó nó sẽ tìm số chỉ mục của chuỗi cần tìm, nếu có.

FIND_IN_SET() - hàm trả về NULL nếu bất kỳ đối số nào (chuỗi tìm kiếm hoặc danh sách chuỗi) là NULL. Ngược lại, hàm FIELD() không trả về NULL mà trả về 0 nếu chuỗi tìm kiếm là NULL.

Ví dụ

mysql> SELECT FIND_IN_SET(NULL, 'Ram is a good boy') AS Result; 
+--------+ 
| Result | 
+--------+ 
| NULL   | 
+--------+ 
1 row in set (0.00 sec) 
mysql> SELECT FIND_IN_SET('RAM', NULL) AS RESULT; 
+--------+ 
| RESULT | 
+--------+ 
| NULL   | 
+--------+ 
1 row in set (0.00 sec) 
mysql> SELECT FIELD(NULL, 'Ram', 'is', 'good', 'boy'); 
+-------------------------------------+ 
| FIELD(NULL, 'Ram', 'is', 'good', 'boy') | 
+-------------------------------------+ 
| 0                                   | 
+-------------------------------------+ 
1 row in set (0.00 sec)