工作中遇到一些sql函数随笔记录,后期再有,随手追加:
1、GROUP_CONCAT(expr):
group_concat([DISTINCT]要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
2、FIND_IN_SET(str,strlist):
查询字段(strlist)中包含(str)的结果,返回结果为null或str的位置下
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替换