眾所周知,這兩個函數都用于根據它們提供的參數搜索字符串,但它們之間存在一些顯著差異,如下所示
- FIND_IN_SET()函數使用的字符串列表本身就是一個包含以逗號分隔的子字符串的字符串。而 INSTR() 函數包含一個字符串,它將從中查找子字符串第一次出現的位置(如果存在)。?對于整數,FIND_IN_SET() 比 INSTR() 函數更合適。可以通過下面的例子來理解
例子
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)
登錄后復制
從上面示例的結果集中,我們可以看到 INSTR() 函數返回 1 甚至 2,因為參數中不存在字符串。但 FIND_IN_SET() 函數返回 0,這是正確的答案。
以上就是MySQL INSTR() 和 FIND_IN_SET() 函數有什么區別?的詳細內容,更多請關注www.92cms.cn其它相關文章!






