MySQL FIND_IN_SET() 函数使用指南

MySQL FIND_IN_SET() 函数返回字符串在一个逗号分隔的字符串列表中的索引。 FIND_IN_SET() 函数与 FIELD() 函数类似,不同的是 FIELD() 中的列表是由多个参数组成的,并且参数的类型也不一定是字符串。

FIND_IN_SET() 语法

这里是 MySQL FIND_IN_SET() 函数的语法:

FIND_IN_SET(string, string_list)

参数说明

string
必须的。这是要搜索的字符串。
string_list
必须的。这是一个使用逗号分隔的字符串列表。

返回值

  • 如果在 string_list 找到 stringFIND_IN_SET() 函数将返回对应的位置索引。
  • 如果在 string_list 中找不到 string,则 FIND_IN_SET() 函数将返回 0
  • 如果 stringNULLFIND_IN_SET() 函数将返回 NULL
  • 如果 string_list 为空字符串,则 FIND_IN_SET() 函数将返回 0
  • 如果 string_listNULL,则 FIND_IN_SET() 函数将返回 NULL

FIND_IN_SET() 示例

SELECT 
  FIND_IN_SET('A', 'A,B,C'),
  FIND_IN_SET('D', 'A,B,C'),
  FIND_IN_SET('D', ''),
  FIND_IN_SET(NULL, 'A,B,C'),
  FIND_IN_SET('D', NULL)\G
*************************** 1. row ***************************
 FIND_IN_SET('A', 'A,B,C'): 1
 FIND_IN_SET('D', 'A,B,C'): 0
      FIND_IN_SET('D', ''): 0
FIND_IN_SET(NULL, 'A,B,C'): NULL
    FIND_IN_SET('D', NULL): NULL
1 row in set (0.00 sec)