MySQL中,FIELD()函数和FIND_IN_SET()函数有什么区别?
我们知道,这两个函数都用于从它们提供的参数中搜索字符串,但它们之间有一些显著的区别,如下所示。
FIND_IN_SET() – 该函数使用的字符串列表本身就是一个包含由逗号分隔的子字符串的字符串。 而FIELD()函数包含不同字符串的列表,在其中将查找字符串的索引号(如果存在)。
FIND_IN_SET() – 如果任一参数即搜索字符串或字符串列表为空,则该函数返回NULL。相反,FIELD()函数不会返回NULL,而是如果搜索字符串为空,则返回0。
阅读更多:MySQL 教程
例子
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)