MySQL常用函数总结

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路MySQL常用函数总结,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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日期函数总结

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155726.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!