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