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