内置函数其它函数

举报
Ustinian_2022 发表于 2022/07/27 17:39:29 2022/07/27
【摘要】 11.12 MySQL的其他函数MySQL中有些函数无法对其进行具体的分类,但是这些函数在MySQL的开发和运维过程中也是不容忽视的,本节就简单介绍一下MySQL中无法对其进行具体分类的函数。11.12.1 FORMAT(value,n)函数FORMAT(value,n)函数返回对数字value进行格式化后的结果数据,其中n表示四舍五入后保留到小数点后n位。如果n的值小于或者等于0,则只保留...

11.12 MySQL的其他函数

MySQL中有些函数无法对其进行具体的分类,但是这些函数在MySQL的开发和运维过程中也是不容忽视的,本节就简单介绍一下MySQL中无法对其进行具体分类的函数。


11.12.1 FORMAT(value,n)函数

FORMAT(value,n)函数返回对数字value进行格式化后的结果数据,其中n表示四舍五入后保留到小数点后n位。如果n的值小于或者等于0,则只保留整数部分。


mysql> SELECT FORMAT(123.123, 2), FORMAT(123.523, 0), FORMAT(123.123, -2); 
+--------------------+--------------------+---------------------+
| FORMAT(123.123, 2) | FORMAT(123.523, 0) | FORMAT(123.123, -2) |
+--------------------+--------------------+---------------------+
| 123.12             | 124                | 123                 |
+--------------------+--------------------+---------------------+
1 row in set (0.00 sec)


11.12.2 CONV(value,from,to)函数

CONV(value,from,to)函数将value的值进行不同进制之间的转换,value是一个整数,如果任意一个参数为NULL,则结果返回NULL。使用示例如下:


mysql> SELECT CONV(16, 10, 2), CONV(8888,10,16), CONV(NULL, 10, 2);
+-----------------+------------------+-------------------+
| CONV(16, 10, 2) | CONV(8888,10,16) | CONV(NULL, 10, 2) |
+-----------------+------------------+-------------------+
| 10000           | 22B8             | NULL              |
+-----------------+------------------+-------------------+
1 row in set (0.00 sec)


11.12.3 INET_ATON(value)函数

INET_ATON(value)函数将以点分隔的IP地址转化为一个数字表示,其中,value为以点表示的IP地址。使用示例如下:


mysql> SELECT INET_ATON('192.168.1.100');
+----------------------------+
| INET_ATON('192.168.1.100') |
+----------------------------+
|                 3232235876 |
+----------------------------+
1 row in set (0.00 sec)

以“192.168.1.100”为例,计算方式为192乘以256的3次方,加上168乘以256的2次方,加上1乘以256,再加上100。


11.12.4 INET_NTOA(value)函数

INET_NTOA(value)函数将数字形式的IP地址转化为以点分隔的IP地址。使用示例如下:


mysql> SELECT INET_NTOA(3232235876);
+-----------------------+
| INET_NTOA(3232235876) |
+-----------------------+
| 192.168.1.100         |
+-----------------------+
1 row in set (0.00 sec)

可以看到,INET_ATON(value)函数与INET_NTOA(value)函数互为反函数。


11.12.5 BENCHMARK(n,expr)函数

BENCHMARK(n,expr)函数将表达式expr重复执行n次,主要用于测试MySQL处理expr表达式所耗费的时间。使用示例如下:


mysql> SELECT BENCHMARK(1, MD5('mysql'));
+----------------------------+
| BENCHMARK(1, MD5('mysql')) |
+----------------------------+
|                          0 |
+----------------------------+
1 row in set (0.00 sec)

可以看到,对字符串mysql执行1次MD5加密几乎没有耗时。


mysql> SELECT BENCHMARK(1000000, MD5('mysql')); 
+----------------------------------+
| BENCHMARK(1000000, MD5('mysql')) |
+----------------------------------+
|                                0 |
+----------------------------------+
1 row in set (0.20 sec)

可以看到,对字符串mysql执行1000000次MD5加密耗时0.20s。


11.12.6 CAST(value AS type)函数

CAST(value AS type)函数将value转换为type类型的值,其中type的取值如表11-6所示。

表11-6 CAST(value AS type)函数中type可取的值

使用示例如下:


mysql> SELECT CAST('123' AS SIGNED);
+-----------------------+
| CAST('123' AS SIGNED) |
+-----------------------+
|                   123 |
+-----------------------+
1 row in set (0.00 sec)

CONVERT(value,type)函数的作用与CAST(value AS type)函数相同,不再赘述。


11.12.7 CONVERT(value USING char_code)函数

将value所使用的字符编码修改为char_code,使用示例如下:


mysql> SELECT CHARSET('mysql'), CHARSET(CONVERT('mysql' USING 'utf8'));
+------------------+----------------------------------------+
| CHARSET('mysql') | CHARSET(CONVERT('mysql' USING 'utf8')) |
+------------------+----------------------------------------+
| utf8mb4          | utf8                                   |
+------------------+----------------------------------------+
1 row in set, 1 warning (0.00 sec)

可以看到,MySQL对字符串默认使用的字符编码为utf8mb4,可以使用CONVERT(value USING char_code)函数将其修改为UTF-8。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。