在 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+ 浏览量

开启你的 职业生涯

通过完成此课程获取认证

开始
广告