mysql 常用的函数_mysql常用的函数

1、IF(expr1,expr2,expr3)函数:

如果 expr1 是TRUE ,则 IF()的返回值为expr2; 否则返回值则为 expr3。

IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

例:

0849ebe33366ef2f004134ac7867b98d.png

2、IFNULL(expr1,expr2)函数:

如果expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。

IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

c3d23cfd8ef41a6fa93524cecc9a64e7.png

3、CONCAT(str1,str2,...) 函数:

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。

如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。

一个数字参数被转化为与之相等的二进制字符串格式;

若要避免这种情况,可使用显式类型 cast,

例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)

226f37ee5c9b99406fe59989859f100f.png

4、INSTR(str,substr) 函数:

返回字符串 str 中子字符串的第一个出现位置。如果找不到返回0.

ebf65831a0cdadcf98c8cdfdbe0df1fd.png

5、FLOOR(数值) 取整函数:

3b9da0dc4b139e1ad3dad37e86a86b50.png

6、cast() 类型转换函数:

为了进行数据类型转化,mysql提供了cast()函数,它可以把一个值转化为指定的数据类型。

数据类型有:binary,char,date,time,datetime,signed,unsigned

eacf878562c92498e907607702b3db33.png

7、group_concat() 类型转换函数:

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

2b490d9e832fd6951edb30af5e15fe1a.png

(1)、需求:每个userid为一行 ,并且每行显示该userid的所有分数。

SELECT userid,GROUP_CONCAT(score) FROM test GROUP BY userid

ec72a143a0b53aeee138851e675f4733.png

(2)、需求:去重复score

SELECT userid,GROUP_CONCAT(DISTINCT score) FROM test4 GROUP BY userid

5b829c00ddd381f1e10c8593e905e994.png

(3)、需求:排序score

SELECT userid,GROUP_CONCAT(score ORDER BY score DESC) FROM test4 GROUP BY userid
![](https://s4.51cto.com/images/blog/201806/26/e0f7d8d844207b743474e25c90891f93.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

(4)、需求:设置分隔符,默认为逗号,设置分隔符@。

SELECT userid,GROUP_CONCAT(score SEPARATOR '@') FROM test4 GROUP BY userid

488d2c855e2b3abb172f47fd23017fb8.png

8、ROUND() 四舍五入函数:

mysql> select round(5.2);

+------------+

| round(5.2) |

+------------+

| 5 |

+------------+

mysql> select round(5.5);

+------------+

| round(5.5) |

+------------+

| 6 |

+------------+

9、left(str, length)从左开始截取字符串 :

说明:left(被截取字段,截取长度)

mysql> select left('123456789',3);

+------------+

| 123 |

+------------+

10、right(str, length)从右开始截取字符串 :

说明:right(被截取字段,截取长度)

mysql> select right('123456789',3);

+------------+

| 789 |

+------------+

11、substring(str, pos,length)截取字符串 :

说明:

substring(被截取字段,从第几位开始截取)

substring(被截取字段,从第几位开始截取,截取长度)

mysql> select substring('123456789',3);

+--------------------+

| 3456789 |

+---------------------+

12、LOCATE(substr,str) 或者 POSITION(substr IN str)函数:

函数返回子串substr在字符串str中第一次出现的位置。如果子串substr在str中不存在,返回值为0。

mysql> SELECT LOCATE('bar', 'foobarbar');

-> 4

mysql> SELECT LOCATE('xbar', 'foobar');

-> 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值