文章目录
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。
日期函数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155726.html