SQL语句— FIND_IN_SET

菠萝饭 65 2021-12-13

前言

今天进行数据库查询时,使用到一个不太常用的SQL语句:FIND_IN_SET,做一简单记录:

关键语句:
FIND_IN_SET(str,strlist):

其中,第一个参数str,是一个不包含','的子字符串, 第二个参数strlist是一个由数个子字符串+','+...拼接的字符串链。 如果,子字符串在字符串链中包含,则返回该子字符串所在位置(1,2,3...)

可用于将多个查询结果顺序输出;

注意事项:

  • 子字符串中不能包含逗号 (,);

  • 如果字符串链为“”或字符串链中未包含返回0;

  • 如果两个参数中有NULL,则返回NULL

示例语句:

SELECT * FROM entity_song WHERE tsid IN ('6004005','8013840','7126169','6004523','6004111') ORDER BY FIND\_IN\_SET(tsid,'6004005,8013840,7126169,6004523,6004111')

如上,可将查询结果按顺序输出。(注意,字符串链中不能有空格,否则会失效)


# 实际问题