在 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)

更新於:20-6 月-2020

1 千次以上瀏覽

啟動你的 事業

完成該課程即可獲得認證

開始
廣告
© . All rights reserved.