尋找字串str1在以分隔字元delimiter分隔的字串str2中的位置,從1開始計數。
命令格式
BIGINT FIND_IN_SET(STRING <str1>, STRING <str2>[, STRING <delimiter>])參數說明
參數 | 是否必填 | 說明 |
str1 | 是 | STRING類型。待尋找的字串。 |
str2 | 是 | STRING類型。以分隔字元delimiter分隔的字串。 |
delimiter | 否 | STRING類型常量。預設時預設為逗號( |
傳回值說明
返回BIGINT類型。返回規則如下:
當str2中無法匹配到str1或str1中包含分隔字元delimiter時,返回0。
當str1或str2值為
NULL時,返回NULL。
使用樣本
樣本1:尋找字串
ab在以逗號(,)分隔的字串abc,hello,ab,c中的位置。命令樣本如下。SELECT FIND_IN_SET('ab', 'abc,hello,ab,c') AS pos;返回結果如下。
+------------+ | pos | +------------+ | 3 | +------------+樣本2:尋找字串
hi在以逗號(,)分隔的字串abc,hello,ab,c中的位置。命令樣本如下。SELECT FIND_IN_SET('hi', 'abc,hello,ab,c') AS pos;返回結果如下。
+------------+ | pos | +------------+ | 0 | +------------+樣本3:尋找字串
ab在以底線(_)分隔的字串abc_hello_ab_c中的位置。命令樣本如下。SELECT FIND_IN_SET('ab', 'abc_hello_ab_c', '_') AS pos;返回結果如下。
+------------+ | pos | +------------+ | 3 | +------------+樣本4:當輸入參數
str1或str2值為NULL時,命令樣本如下。SELECT FIND_IN_SET(null, 'abc,hello,ab,c') AS pos;返回結果如下。
+------------+ | pos | +------------+ | NULL | +------------+
相關函數
FIND_IN_SET函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數。