mysql中比较实用的几个函数

1.曾有这样的需求:

 

 

 可以使用如下函数:

语法:FIND_IN_SET(str,strlist)。

定义:

1. 假如字符串str在由N子链组成的字符串列表strlist中,则返回值的范围在1到N之间。

2. 一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。

3. 如果第一个参数是一个常数字符串,而第二个是typeSET列,则FIND_IN_SET()函数被优化,使用比特计算。

4. 如果str不在strlist或strlist为空字符串,则返回值为0。

5. 如任意一个参数为NULL,则返回值为NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

strlist:一个由英文逗号“,”链接的字符串,例如:"a,b,c,d",该字符串形式上类似于SET类型的值被逗号给链接起来。

示例:SELECT FIND_IN_SET('b','a,b,c,d'); //返回值为2,即第2个值

2.曾有这样的需求:

需要将查询出来的id,按指定的分隔符拼接。我们一般都是查询出list后,在service层中拼接,其实在查询过程中就可以直接拼接,

可使用如下函数:

语法结构:

 GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC DESC] [,col_name ...]] [SEPARATOR str_val])

DISTINCT:去除重复值

expr [,expr ...]:一个或多个字段(或表达式)

ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]:根据字段或表达式进行排序,可多个

SEPARATOR str_val:分隔符(默认为英文逗号)

如下实例:

 

posted @ 2019-12-14 10:38  goodTOgreat  阅读(318)  评论(0编辑  收藏  举报