内置函数其它函数
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。
- 点赞
- 收藏
- 关注作者
评论(0)