SQL函数随笔

来源:互联网 发布:飞扬动力软件 编辑:程序博客网 时间:2024/06/03 07:19

工作中遇到一些sql函数随笔记录,后期再有,随手追加:

1、GROUP_CONCAT(expr):

group_concat([DISTINCT]要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

2、FIND_IN_SET(str,strlist):

查询字段(strlist)中包含(str)的结果,返回结果为nullstr的位置下

3、EXISTS():

exists引导的子句有结果集返回,那么exists这个条件就算成立了。

如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in

如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引,而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists 都比not in 要快。

4、LOCATE(substr,str,pos):

返回第一次出现在字符串str的子串substr的位置,从位置pos开始。substr不在str中,则返回0。

5、CONCAT(str1,str2,...):

将多个字符串连接起来,形成一个单一的字符串。

6、DATEDIFF ( datepart , startdate , enddate ):

求2个日期之间间隔的天数,datediff( dd, '2008/1/1', '2009/1/2' )

7、GREATEST(value1,value2,...):

返回值列表中最大值,value列表必须是相同类型,当value值列表中有一个为NULL,则返回NULL值。

8、LEAST(value1,value2,...):

返回值列表中最小值, value列表必须是相同类型,当value值列表中有一个为NULL,则返回NULL值。

9、`COALESCE`(value,...)

返回该表达式列表的第一个非空value,value列表必须是相同类型

10、CAST(expr AS type):

当前的字段转成某种类型的字段

11、DATE_FORMAT(date,format):

函数用于以不同的格式显示日期/时间数据。

DATE_FORMAT(NOW(),'%m-%d-%Y')

输出12-29-2017

12、DATE_ADD(date,INTERVAL expr unit):

函数向日期添加指定的时间间隔。date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。

13、FIND_IN_SET(str,strlist):

str 要查询的字符串
strlist 字段名 参数以”,”分隔 如 (1,2,6,8)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录

14、REPLACE(str,from_str,to_str):
在字符串 str 中所有出现的字符串 from_str 均被 to_str替换