MySQL中的内置系统函数
用在SELECT语句,以及子句where order by having中 update delete
一、字符串函数
php中用的函数,mysql的内置函数中大部分也提供
1.concat(S1,S2,...Sn);把全部的参数连接成一个字符串 函数中可以将字段名作为变量来用,变量的值就是这个列对应的每一行记录
select concat(name," age is ",age) from users;
2.insert(str,x,y,insert_str);将字符串x位置开始,y个字符串长度替换为字符串insert_str
select insert('abcdefg',2,3,'hello');
select insert(name,3,2,'00'),name from users;
3.lower(str) upper(str) 将字符串转为小写或大写
select lower("HELLO"),upper("hello");
select * from users where upper(name)="AAA";
4.left(str,x) right(str,x)分别返回字符串str最左边的x个字符和最右边的x个字符,如果第二个参数为空,则什么也不返回
select left("abcdefg",3),right("abcdefg",3),left("abcdefg",null);
5.lpad(str,n,pad),rpad(str,n,pad) 用字符串pad对str最左边和最右边进行填充,直到长度为n个字符长度
select name,lpad(name,10,"#"),rpad(name,10,"@") from users;
6.trim(str) ltrim(str) rtrim(str) 去掉字符串两边,左边和右边字符串的空格
select concat('1',trim(" abc ",'2'),concat("1",ltrim(" abc "),"2"),concat("1",rtrim(" abc "),"2");
7.replace(str,a,b) 用字符串b替换字符串str中的所有出现的字符串a
select replace("abcdefghiabcdefghi","d","xx");
8.strcmp(str1,str2) 比较ASCII码大小,如果str1比str2小,返回-1,如果str1比str2大则返回1,如果str1==str2 则返回0
select strcmp("a","b"),strcmp("b","a"),strcmp("a","a");
9.substring(str,x,y) 返回字符串str中的第x位置起,y个字符串长度的字符串
select substring("abcdefghijklmn",3,5);
select name,substr(name,1,2) from users;
二、数值函数
1.abs(x) 返回x的绝对值
select abs(10),abs(-10);
select abs(age) from users;
2.ceil(x) 返回大于x的最小整数
3.floor(x) 返回小于x的最大整数
select ceil(2.1),ceil(2.5),ceil(2.9),floor(2.1),floor(2.5),floor(2.9);//3,3,3,2,2,2
4.mod(x,y) 返回x/y的模
select mod(10,4);//2
5.rand() 0-1之间的随机数
select rand();
select ceil(rand()*100);//0-100之间的随机数
6.round(x,y) 返回参数x的四舍五入的有y位小数的值
7.truncate(x,y) 返回数字x截断为y位小数的结果
select truncate(1.235,2),round(1.235,2);//1.23 1.24
三、日期函数
应当用php的时间戳来完成
1.curdate()返回当前的日期
select curdate();
select time(now());//14:14:14 提取一个时间或日期时间表达式的时间部分,并将其以字符串形式返回。
select now();//返回当前的日期和时间
select unix_timestamp(now());//unix时间戳
select from_unixtime(1293433835);//转成日期的格式
select week(now()),year(now());// 现在是今年的第几周,现在是哪一年
select hour(curtime()),minute(curtime());//返回当前时间的小时,分
select monthname(now());//英文的月份
select date_format(now(),"%Y-%m-%d %H:%i:%s");
2.curtime() 返回当前的时间,时分秒形式
3.now() 返回当前的日期和时间
4.unix_timestamp(date) date参数的unix时间戳形式
5.from_unixtime(time) 把unix时间戳转换成日期的格式
6.week(date) 今年的第几周
7.year(date) 年份
8.hour(date) 小时
9.minute() 分
四、流程控制函数
create table salary(id int ,salary decimal(9,2));
insert into salary values(1,1000),(2,2000),(3,3000),(4,null);
1.if(value,t,f) 如果value是true,返回t,否则返回f
select id,salary,if(salary>2000,'high','low') from salary;
2.ifnull(value1,value2) 如果value1是空则返回value2
select id,salary, ifnull(salary,0) from salary;
3.case when [value1] then[result1] ...else[default] end 当value1是true时返回result1 否则返回default
case when ...then
select case when salary<=3000 then 'low' else 'high' end from salary;
五、其它函数
database()数据库名
version()当前数据库版本
user()当前登录用户
inet_aton(ip) ip地址的网络字节顺序
inet_ntoa() 网络字节顺序的ip地址
password() 密码加密 给mysql用户设置密码,应用程序用户密码加密用md5
md5() 加密
select database();//返回当前的数据库名
select inet_aton('192.168.1.1');//3232235777
select inet_ntoa(3232235777);//192.168.1.1
用在SELECT语句,以及子句where order by having中 update delete
一、字符串函数
php中用的函数,mysql的内置函数中大部分也提供
1.concat(S1,S2,...Sn);把全部的参数连接成一个字符串 函数中可以将字段名作为变量来用,变量的值就是这个列对应的每一行记录
select concat(name," age is ",age) from users;
2.insert(str,x,y,insert_str);将字符串x位置开始,y个字符串长度替换为字符串insert_str
select insert('abcdefg',2,3,'hello');
select insert(name,3,2,'00'),name from users;
3.lower(str) upper(str) 将字符串转为小写或大写
select lower("HELLO"),upper("hello");
select * from users where upper(name)="AAA";
4.left(str,x) right(str,x)分别返回字符串str最左边的x个字符和最右边的x个字符,如果第二个参数为空,则什么也不返回
select left("abcdefg",3),right("abcdefg",3),left("abcdefg",null);
5.lpad(str,n,pad),rpad(str,n,pad) 用字符串pad对str最左边和最右边进行填充,直到长度为n个字符长度
select name,lpad(name,10,"#"),rpad(name,10,"@") from users;
6.trim(str) ltrim(str) rtrim(str) 去掉字符串两边,左边和右边字符串的空格
select concat('1',trim(" abc ",'2'),concat("1",ltrim(" abc "),"2"),concat("1",rtrim(" abc "),"2");
7.replace(str,a,b) 用字符串b替换字符串str中的所有出现的字符串a
select replace("abcdefghiabcdefghi","d","xx");
8.strcmp(str1,str2) 比较ASCII码大小,如果str1比str2小,返回-1,如果str1比str2大则返回1,如果str1==str2 则返回0
select strcmp("a","b"),strcmp("b","a"),strcmp("a","a");
9.substring(str,x,y) 返回字符串str中的第x位置起,y个字符串长度的字符串
select substring("abcdefghijklmn",3,5);
select name,substr(name,1,2) from users;
二、数值函数
1.abs(x) 返回x的绝对值
select abs(10),abs(-10);
select abs(age) from users;
2.ceil(x) 返回大于x的最小整数
3.floor(x) 返回小于x的最大整数
select ceil(2.1),ceil(2.5),ceil(2.9),floor(2.1),floor(2.5),floor(2.9);//3,3,3,2,2,2
4.mod(x,y) 返回x/y的模
select mod(10,4);//2
5.rand() 0-1之间的随机数
select rand();
select ceil(rand()*100);//0-100之间的随机数
6.round(x,y) 返回参数x的四舍五入的有y位小数的值
7.truncate(x,y) 返回数字x截断为y位小数的结果
select truncate(1.235,2),round(1.235,2);//1.23 1.24
三、日期函数
应当用php的时间戳来完成
1.curdate()返回当前的日期
select curdate();
select time(now());//14:14:14 提取一个时间或日期时间表达式的时间部分,并将其以字符串形式返回。
select now();//返回当前的日期和时间
select unix_timestamp(now());//unix时间戳
select from_unixtime(1293433835);//转成日期的格式
select week(now()),year(now());// 现在是今年的第几周,现在是哪一年
select hour(curtime()),minute(curtime());//返回当前时间的小时,分
select monthname(now());//英文的月份
select date_format(now(),"%Y-%m-%d %H:%i:%s");
2.curtime() 返回当前的时间,时分秒形式
3.now() 返回当前的日期和时间
4.unix_timestamp(date) date参数的unix时间戳形式
5.from_unixtime(time) 把unix时间戳转换成日期的格式
6.week(date) 今年的第几周
7.year(date) 年份
8.hour(date) 小时
9.minute() 分
四、流程控制函数
create table salary(id int ,salary decimal(9,2));
insert into salary values(1,1000),(2,2000),(3,3000),(4,null);
1.if(value,t,f) 如果value是true,返回t,否则返回f
select id,salary,if(salary>2000,'high','low') from salary;
2.ifnull(value1,value2) 如果value1是空则返回value2
select id,salary, ifnull(salary,0) from salary;
3.case when [value1] then[result1] ...else[default] end 当value1是true时返回result1 否则返回default
case when ...then
select case when salary<=3000 then 'low' else 'high' end from salary;
五、其它函数
database()数据库名
version()当前数据库版本
user()当前登录用户
inet_aton(ip) ip地址的网络字节顺序
inet_ntoa() 网络字节顺序的ip地址
password() 密码加密 给mysql用户设置密码,应用程序用户密码加密用md5
md5() 加密
select database();//返回当前的数据库名
select inet_aton('192.168.1.1');//3232235777
select inet_ntoa(3232235777);//192.168.1.1