前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL常用的函数

MySQL常用的函数

作者头像
AsiaYe
发布2019-11-06 16:34:15
1K0
发布2019-11-06 16:34:15
举报
文章被收录于专栏:DBA随笔DBA随笔
MySQL常用的函数
关于时间和字符串类型的函数差不多已经介绍完了,今天补充一些常用的函数。

1.条件判断函数if和ifnull

if函数用法是:if(expr,value1,value2),首先判断表达式的值,然后根据表达式的值返回value1和value2当中的某一个。

ifnull函数是用来判断一个字段是否为null值得,如果是null,则返回一个自定义的字符串。

下面来看例子:

代码语言:javascript
复制
root@localhost:3306 [(none)]>select if(1>2,'是','否'),if(1<2,'是','否'),if(strcm
p('test','test1'),'否','是')\G
*************************** 1. row ***************************
                   if(1>2,'是','否'): 否
                   if(1<2,'是','否'): 是
if(strcmp('test','test1'),'否','是'): 否
1 row in set (0.00 sec)

需要注意的是test<test1,所以返回值为true,第三个返回否。

下面的例子是ifnull函数的例子,它的原型是ifnull(src,dst),它将null值替换成制定的字符值或者字符串值。

代码语言:javascript
复制
root@localhost:3306 [(none)]>select ifnull(1,2),ifnull(null,10),ifnull(1/0,'wrong');
+-------------+-----------------+---------------------+
| ifnull(1,2) | ifnull(null,10) | ifnull(1/0,'wrong') |
+-------------+-----------------+---------------------+
|           1 |              10 | wrong               |
+-------------+-----------------+---------------------+
1 row in set, 1 warning (0.02 sec)

2.case条件选择

case语法的使用方法如下:

case expt

when cond1

then x1

else x2

end

其中when的条件可以添加多个,else也是可选的,当满足条件cond1,则执行x1操作,否则执行x2操作,举例如下:

代码语言:javascript
复制
root@localhost:3306 [(none)]>select case 2 when 1 then 'one' when 2 then 'two' e
lse 'not1or2' end;
+---------------------------------------------------------------+
| case 2 when 1 then 'one' when 2 then 'two' else 'not1or2' end |
+---------------------------------------------------------------+
| two                                                           |
+---------------------------------------------------------------+
1 row in set (0.04 sec)

3.格式化函数format(x,n)

这个函数讲x的值进行格式化,并使用字符串的方式进行返回,如果n为0,则返回没有小数部分的数值。下面来看例子:

代码语言:javascript
复制
root@localhost:3306 [(none)]>select format(12.345,2),format(123.456789,4),format
(12.1,3);
+------------------+----------------------+----------------+
| format(12.345,2) | format(123.456789,4) | format(12.1,3) |
+------------------+----------------------+----------------+
| 12.35            | 123.4568             | 12.100         |
+------------------+----------------------+----------------+
1 row in set (0.00 sec)

4.进制之间进行转换的函数

conv函数讲数值进行进制之间的转换,conv函数的原型是conv(value,from_base,to_base),value的值可以是一个数字或者字符串,如果是一个字符串而且不规范的话,那么结果将返回0,如果任意一个基数的值为null,则返回值为null,基数的范围是2~36,下面来看例子:

代码语言:javascript
复制
root@localhost:3306 [(none)]>select conv('a',16,2),conv(15,10,2),conv(15,10,8),conv(15,10,16);
+----------------+---------------+---------------+----------------+
| conv('a',16,2) | conv(15,10,2) | conv(15,10,8) | conv(15,10,16) |
+----------------+---------------+---------------+----------------+
| 1010           | 1111          | 17            | F              |
+----------------+---------------+---------------+----------------+
1 row in set (0.00 sec)

5.IP地址与字符串相互转换的函数

这个转换是个相互的过程,包含两个函数,一个是inet_aton(expr),另外一个是inet_ntoa(expr)函数,这两个函数的使用方法如下:

代码语言:javascript
复制
root@localhost:3306 [(none)]>select inet_aton('127.0.0.1'),inet_ntoa(2130706433);
+------------------------+-----------------------+
| inet_aton('127.0.0.1') | inet_ntoa(2130706433) |
+------------------------+-----------------------+
|             2130706433 | 127.0.0.1             |
+------------------------+-----------------------+
1 row in set (0.00 sec)

6.改变数据类型的函数convert和cast

cast的使用方法是cast(x as type);

convert的使用方法是convert(x type);

可以转换的类型有binary,char,date,time,datatime,decimal,signed,unsigned

下面来看例子:

代码语言:javascript
复制
root@localhost:3306 [(none)]>select cast(100 as char(2)),convert('1980-01-10 12:
12:12',time);
+----------------------+-------------------------------------+
| cast(100 as char(2)) | convert('1980-01-10 12:12:12',time) |
+----------------------+-------------------------------------+
| 10                   | 12:12:12                            |
+----------------------+-------------------------------------+
1 row in set, 1 warning (0.04 sec)

平时大概就这么多吧,还有一些特别常用的,类似show processlist,select version(),select user(),select database()等等的,没有写,这些想必也都知道,关于mysql内置的函数这部分大概就这几天的四篇文章吧,后续还有的话,再单独补上。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档