MySQL INSTR()和FIND_IN_SET()函数有什么区别?

MySQL INSTR()和FIND_IN_SET()函数有什么区别?

我们知道,这两个函数都用于在它们提供的参数中搜索字符串,但它们之间存在一些显著的区别,如下所示。

  • FIND_IN_SET()函数使用字符串列表,它本身是一个包含用逗号分隔的子字符串的字符串。而INSTR()函数包含一个字符串,如果存在,则会查找子字符串的第一次出现的位置。
  • 对于整数而言,FIND_IN_SET()比INSTR()函数更合适。可以通过以下示例来理解。

阅读更多:MySQL 教程

示例

mysql> Select IF(INSTR('10,11,12,13',2) > 0,1,0) As Result;
+--------+
| Result |
+--------+
|      1 |
+--------+
1 row in set (0.05 sec)

mysql> Select IF(FIND_IN_SET(2,'10,11,12,13') > 0,1,0)As Result;
+--------+
| Result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

从上面的示例的结果集中,我们可以看到,即使将2作为字符串不在参数中,INSTR()函数仍然返回1。但FIND_IN_SET()函数返回正确答案0。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程