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