在 MySQL 中,FIELD() 函式與 FIND_IN_SET() 函式有什麼不同?


眾所周知,這兩個函式都用於搜尋提供給它們的引數中的字串,但它們之間有一些顯著的差異,如下所述 −

FIND_IN_SET() − 函式使用字串列表,它本身是一個字串,其中包含用逗號分隔的子字串。而 FIELD() 函式包含一組不同的字串,它將在這些字串中查詢要搜尋字串的索引號(如果存在)。

FIND_IN_SET() − 函式如果任何引數(即搜尋字串或字串列表)為 NULL,則返回 NULL。相反,FIELD() 函式不會返回 NULL,但如果搜尋字串為 NULL,則返回 0。

示例

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)

更新於:2020 年 6 月 20 日

1000+ 瀏覽量

開啟你的 職業生涯

透過完成此課程獲取認證

開始
廣告