Computer >> Máy Tính >  >> Lập trình >> MySQL

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


Như chúng ta đã biết, cả hai hàm đều được sử dụng để tìm kiếm một chuỗi từ các đối số được cung cấp trong chúng nhưng có một số khác biệt đáng kể giữa chúng như sau -

FIND_IN_SET () - hàm sử dụng danh sách chuỗi mà bản thân nó là một chuỗi chứa 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, trong đó nó sẽ tìm số chỉ mục của chuỗi, nếu có, sẽ được tìm kiếm.

FIND_IN_SET () - hàm trả về NULL nếu bất kỳ đối số nào, tức là 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)