MySQL INSTR() 與 FIND_IN_SET() 函式有什麼區別?
眾所周知,這兩個函式都用於從提供給它們的引數中搜索字串,但它們之間存在一些顯著差異,如下所示
- 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,這是正確的答案。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP