持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
前言
上篇我们又学习了一部分MySQL中的函数。有兴趣的小伙伴可以阅读(# MySQL学习-函数(十))。
下面继续学习MySQL中的函数。
其他函数
MySQL中有些函数无法对其进行具体的分类,但是这些函数在MySQL的开发和运维过程中也是不容忽视的。
| 函数 | 用法 |
|---|---|
| FORMAT(value,n) | 返回对数字value进行格式化后的结果数据。n表示四舍五入后保留到小数点后n位 |
| CONV(value,from,to) | 将value的值进行不同进制之间的转换 |
| INET_ATON(ipvalue) | 将以点分隔的IP地址转化为一个数字 |
| INET_NTOA(value) | 将数字形式的IP地址转化为以点分隔的IP地址 |
| BENCHMARK(n,expr) | 将表达式expr重复执行n次。用于测试MySQL处理expr表达式所耗费的时间 |
| CONVERT(value USING char_code) | 将value所使用的字符编码修改为char_code |
示例一
SELECT FORMAT(123.123, 2), FORMAT(123.123, 0), FORMAT(123.123, -2)
FROM DUAL
| FORMAT(123.123, 2) | FORMAT(123.123, 0) | FORMAT(123.123, -2) |
|---|---|---|
| 123.12 | 123 | 123 |
通过结果可以看出FORMAT函数,保留了四舍五入后的2位小数。
如果n的值小于或者等于0,则只保留整数部分。
示例二
SELECT CONV(16, 10, 2), CONV(8888, 10, 16), CONV(NULL, 10, 2)
FROM DUAL
| CONV(16, 10, 2) | CONV(8888, 10, 16) | CONV(NULL, 10, 2) |
|---|---|---|
| 10000 | 2288 | NULL |
转换NULL时,结果还是NULL。
示例三
SELECT INET_ATON('192.168.1.100')
FROM DUAL
| INET_ATON('192.168.1.100') |
|---|
| 3232235876 |
INET_ATON函数将ip地址转化为了一个整数。
转化公式为:以'192.168.1.100'为例,192乘以256的3次方,加上168乘以256的2次方,加上1乘以256,再加上100.可以得出值为3232235876。
示例四
SELECT INET_NTOA(3232235876)
FROM DUAL
| INET_NTOA(3232235876) |
|---|
| 192.168.1.100 |
INET_NTOA函数将一个整数转化为了ip地址。
示例五
SELECT BENCHMARK(10000000, MD5('mysql'))
FROM DUAL
| BENCHMARK(10000000, MD5('mysql')) |
|---|
| 0 |
通过运行时间,可以看出表达式运行多长时间。
示例六
SELECT CHARSET('bingdundun'), CHARSET(CONVERT('bingdundun' USING 'gbk'))
FROM DUAL
| CHARSET('bingdundun') | CHARSET(CONVERT('bingdundun' USING 'gbk')) |
|---|---|
| utf8 | gbk |
利用CHARSET函数,可以很方便的验证CONVERT函数是否能转换成功。
今天就把MySQL的单行函数学习完了,明天做一些练习巩固一下知识点。