关注我

    我的微信
在线咨询 x
在线咨询
有什么可以帮到你
点击咨询

MySQL 中的常用函数, floor(),rand(),left(),now(),concat() ...

简介MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。

MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。

mysql中的列可以当成变量来看,既然是变量,就可以参与运算(+ - * / 加减乘除)

select 3+2;
select 3*2;

这几类分别举个例子,讲解几个函数


一、floor(x) 返回小于x的最大整数值


# goods表的shop_price取出整数
select goods_id,goods_name,floor(shop_price) from goods;


二、rand()返回 0 到 1 内的随机值


可以通过提供一个参数(种子)使rand()随机数生成器生成一个指定的值

# 生成随机5-10的值
select rand();
select floor(5+rand()*5);
# 随机在用户表取一条数据
select * from user order by rand() limit 1;


三、left(str,x)返回字符串str中最左边的x个字符


create table t27 (
email char(20)
);

插入 email 数据

insert into t27 values ('abc@163.com'),('123456@qq.com');

我们想要分别统计各邮箱种类的使用率,需要将email字段截取成两部分

select left(email,3) from t27;

我们需要获取@的位置,将@前面的截取出来,position(substr in str) 返回子串substr在字符串str中第一次出现的位置

select position('@' in email) from t27;

select left(email,position('@' in email)-1) from t27;


四、now() 返回当前的日期和时间


select now();

date_format(date,fmt) 依照指定的fmt格式格式化日期date值

# 注意跟要加百分号%
select date_format(now(),'%Y/%m);


五、连接函数concat()


select concat('id:',id) id,concat('user:',username) user,concat('pass:',password) pass from user;

select id,username,password,concat(id,'-',username,'-',password) iduserpass from user;


六、group by分组聚合的使用


按条件进行分组,然后在分组的基础上进行有条件的聚合

#统计每个班的总人数:
select concat(class,' 班') 班级,concat(count(*),' 人') 人数 from user group by class;

#分组聚合
select class,max(id) max_id,min(id) min_id,count(id) count_id,sum(id) sum_id,avg(id) avg_id from user group by class;