本篇整理一下 MySQL 中比较常用的函数,在日常工作中遇到其他不熟悉的函数完全可以查手册,记住各种不常用函数的意义并不大。
数学函数
绝对值(abs)
select abs(3-5);
上面这条就可以用 abs() 返回 3-5 的绝对值 2
进制转换(bin, oct, hex)
select bin(7);
上面这条语句就把十进制的 7 转化成二进制 111。oct(). hex() 函数也差不多,分别是转换成八进制和十六进制
小数取整(floor, ceiling)
select floor(3.5);
上面这条即对数做向下取整,即小数点后面的舍去,而 ceiling() 则是向上取整会给出大于 x 的最小整数,例如
select ceiling(3.4);
则会返回4
随机数(rand)
select rand();
rand() 会给出 0 到 1 之间的随机数,可以加入一个参数种子,使其生成一个指定的值
聚合函数
聚合函数除了前面MySQL 中 group 分组与统计函数这篇文章中归纳过的 avg(),count(), min(col), max(col), sun(col) 外,常用的还有 group_concat(col)。group_concat() 是将其拼接起来
select group_concat(goods_id separator"-"),cat_id from goods where cat_id = 4 group by cat_id;
group_concat() 默认使用逗号拼接,可以使用 separator 指定拼接的符号
字符串函数
ASCII码(ASCII)
select ascii('a');
返回字符 a 的 ASCII 码 97
字符串比特长度(bit_length)
select bit_length("武林外传");
在 utf8 下返回 96,即 8*3*4,gbk 则是返回 64,8*2*4
字符串字节长度(length)
select length("武林外传");
在 utf8 下返回 12,gbk 下返回 8。因为 utf8 下一个汉字是 3 个字节, gbk 下一个汉字是 2 个字节
字符串的字符数(char_length)
select char_length("武林外传");
返回的就是 4 ,返回的是字符数的长度
反转字符串 (reverse)
select reverse("武林外传");
返回的就是“传外林武”
最右边 x 个字符(right)
select right("武林外传",2);
返回“外传”两个字
第一次出现的位置(position)
select position("@" in "google@gmail.com");
返回 7 ,即从 1 开始数,和大多数编程语言从 0 开始不同
网友评论