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,這是正確的答案。

更新時間: 04-Feb-2020

376 次瀏覽

職業生涯 起航

完成課程,獲得認證

開始
廣告
© . All rights reserved.