MySQL常用函数总结


MySQL有许多内置函数。包含MySQL中的字符串,数字,日期和一些高级函数。

持续更新!!!

未分类

IFNULL 函数

IFNULL(expr1,expr2)
说明:如果expr1为NULL,返回expr2

例如:
SELECT IFNULL( last, 'test' ) FROM people;

也可以使用 COALESCE() 函数
SELECT COALESCE( last, 'test' ) FROM people;

any_value()函数

MySQL5.7之后,sql_mode中ONLY_FULL_GROUP_BY模式默认设置为打开状态。
ONLY_FULL_GROUP_BY的语义就是确定select target list中的所有列的值都是明确语义,简单的说来,在此模式下,target list中的值要么是来自于聚合函数(sum、avg、max等)的结果,要么是来自于group by list中的表达式的值。

MySQL提供了any_value()函数来抑制ONLY_FULL_GROUP_BY值被拒绝。
注意,any_value()会选择被分到同一组的数据里第一条数据的指定列值作为返回数据。

contact 拼接函数

concat

将查询结果拼接成一个字符串,返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

select concat('11','22','33');

-- 112233

concat_ws

和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~(concat_ws就是concat with separator)

语法:concat_ws(separator, str1, str2, …)

说明:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。

select CONCAT_WS(',','a','b','c');

-- a,b,c

group_concat

将查询结果用半角逗号连接起来,一般用在group by分组查询语句中,也可以用在普通查询中。

replace

场景:Mysql中,想更新表的某个字段的某段内容
使用replace函数来执行这个操作

update <table_name> set <column_name> = REPLACE(<column_name>, '替换前的内容', '替换后的内容');

数字函数

RAND()函数

返回0(包括)和1(不包括)之间的随机数。(> = 0且<1)
适用于: 从MySQL 4.0

语法参数描述
RAND(seed)seed可选的。如果指定了seed,则返回可重复的随机数序列。如果未指定种子,则返回完全随机的数字
例子:
SELECT RAND();
SELECT RAND(5);

扩展使用:
select * from table1 order by RAND() limit 20;
随机查询取前20条记录

对某个值进行取整处理

函数说明
FLOOR(X)向下取整,返回不大于X的最大整数。例: floor(1.2) = 1
CEIL(X)、CEILING(X)向上取整,返回不小于X的最小整数。例: ceil(1.2) = 2
TRUNCATE(X,D)返回数值X保留到小数点后D位的值,截断时不进行四舍五入。
ROUND(X)返回离X最近的整数,截断时要进行四舍五入。
ROUND(X,D)保留X小数点后D位的值,截断时要进行四舍五入。若D为负值,则将保留X值到小数点左边D位.
FORMAT(X,D)将数字X格式化,将X保留到小数点后D位,截断时要进行四舍五入

ROUND(X,D)

ROUND(X,D)函数返回最接近于参数X的数,其值保留到小数点后面D位,若D为负值,则将保留X值到小数点左边D位。

实例:

SELECT
	ROUND( 3.45, 1 ),
	ROUND( 3.45, 0 ),
	ROUND( 123.45,- 1 ),
	ROUND( 167.8,- 2 );

输出:
ROUND(3.45,1),保留小数点后面1位,四舍五入的结果为3.5;
ROUND(3.45,0),保留小数点后面0位,四舍五入的结果为3;
ROUND(123.45,-1),保留小数点左边1位,即从小数点向左查1位,这1位用0代替,返回四舍五入后的值为120;
ROUND(167.8,-2) ,保留小数点左边2位,即从小数点向左查2位,这两位用0代替,返回四舍五入后的值为200。

TRUNCATE(x,y)

TRUNCATE(x,y)函数返回被舍去至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。若y设为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值。

实例,SQL语句如下:

SELECT TRUNCATE( 2.34, 1 ),
	TRUNCATE ( 4.56, 1 ),
	TRUNCATE ( 4.56, 0 ),
	TRUNCATE ( 56.78,- 1 );

TRUNCATE(2.34,1)和TRUNCATE(4.56,1)都保留小数点后1位数字,返回值分别为2.3和 4.5;
TRUNCATE(4.56,0)返回整数部分4;
TRUNCATE(56.78,-1),截去小数点左边第1位后面的值,并将整数部分的1位数字置0,结果为50。

日期函数

MySQL日期函数总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值