FIND_IN_SET

更新时间:2025-02-14 09:03:39

查找字符串str1在以分隔符delimiter分隔的字符串str2中的位置,从1开始计数。

命令格式

BIGINT FIND_IN_SET(STRING <str1>, STRING <str2>[, STRING <delimiter>])

参数说明

参数

是否必填

说明

参数

是否必填

说明

str1

STRING类型。待查找的字符串。

str2

STRING类型。以分隔符delimiter分隔的字符串。

delimiter

STRING类型常量。缺省时默认为逗号(,)。分隔符可以是一个字符,也可以是一个字符串。

返回值说明

返回BIGINT类型。返回规则如下:

  • str2中无法匹配到str1str1中包含分隔符delimiter时,返回0。

  • str1str2值为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:当输入参数str1str2值为NULL时,命令示例如下。

    SELECT FIND_IN_SET(null, 'abc,hello,ab,c') AS pos;

    返回结果如下。

    +------------+
    | pos        |
    +------------+
    | NULL       |
    +------------+

相关函数

FIND_IN_SET函数属于字符串函数,更多查找字符串、转换字符串格式的相关函数请参见字符串函数

  • 本页导读 (1)
  • 命令格式
  • 参数说明
  • 返回值说明
  • 使用示例
  • 相关函数