-
今天进行数据库查询时,使用到一个不太常用的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')
如上,可将查询结果按顺序输出。(注意,字符串链中不能有空格,否则会失效)