mysql中常用函数

一、if、ifnull、nullif、isnull的使用

1. IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。

SELECT IFNULL(NULL,‘B’); – 输出结果:B
SELECT IFNULL(‘HELLO’,‘B’); – 输出结果:HELL

2. IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。

SELECT IF(TRUE,‘A’,‘B’); – 输出结果:A
SELECT IF(FALSE,‘A’,‘B’); – 输出结果:B

3. NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。

SELECT NULLIF(‘A’,‘A’); – 输出结果:null
SELECT NULLIF(‘A’,‘B’); – 输出结果:A

4. ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

SELECT ISNULL(NULL); – 输出结果:1
SELECT ISNULL(‘HELLO’); – 输出结果:0

二、foreach 和 if 的使用

1. foreach循环

<foreach item = "code" collection="userIDs" separator="," open="(" close=")">
      #{code}
</foreach>

参数说明:
collection:指定输入对象中的集合属性
item:每次遍历生成的对象
open:开始遍历时的拼接字符串
close:结束时拼接的字符串
separator:遍历对象之间需要拼接的字符串

2. if判断

# <if test="条件判断"> 执行语句</if>
<if test="myType != null and myType != ''">
   //sql语句
</if>

gt 对应 >
gte 对应 >=
lt 对应 <
lte 对应 <=
eq 对应 ==
neq 对应 !=

三、常见函数

1. FORMAT() 函数 函数用于对字段的显示进行格式化

语法: SELECT FORMAT(column_name,format) FROM table_name

date_format(t.date,'%Y')=date_format(curdate(),'%Y%m%d') 

column_name 必需。要格式化的字段 format 必需。规定格式。

格式参数

%S、%s 两位数字形式的秒( 00,01, …, 59)

%I、%i 两位数字形式的分( 00,01, …, 59)

小时

%H 24小时制,两位数形式小时(00,01, …,23)
%h 12小时制,两位数形式小时(00,01, …,12)
%k 24小时制,数形式小时(0,1, …,23)
%l 12小时制,数形式小时(0,1, …,12)
%T 24小时制,时间形式(HH:mm:ss)
%r 12小时制,时间形式(hh:mm:ss AM 或 PM)
%p AM上午或PM下午


%W 一周中每一天的名称(Sunday,Monday, …,Saturday)

%a 一周中每一天名称的缩写(Sun,Mon, …,Sat)
%w 以数字形式标识周(0=Sunday,1=Monday, …,6=Saturday)
%U 数字表示周数,星期天为周中第一天
%u 数字表示周数,星期一为周中第一天


%d 两位数字表示月中天数(01,02, …,31)

%e 数字表示月中天数(1,2, …,31)
%D 英文后缀表示月中天数(1st,2nd,3rd …)
%j 以三位数字表示年中天数(001,002, …,366)

%M 英文月名(January,February, …,December)
%b 英文缩写月名(Jan,Feb, …,Dec)
%m 两位数字表示月份(01,02, …,12)
%c 数字表示月份(1,2, …,12)

%Y 四位数字表示的年份(2015,2016…)
%y 两位数字表示的年份(15,16…)

文字输出 %文字 直接输出文字内容

2.UCASE() 函数 UCASE 函数把字段的值转换为大写。

语法:SELECT UCASE(column_name) FROM table_name

3.LCASE() 函数 LCASE 函数把字段的值转换为小写。

语法: SELECT LCASE(column_name) FROM table_name

4.MID() 函数 MID 函数用于从文本字段中提取字符。

语法:SELECT MID(column_name,start[,length]) FROM table_name

column_name 必需。要提取字符的字段。
start 必需。规定开始位置(起始值是 1)。 length 可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。

5.LEN() 函数 LEN 函数返回文本字段中值的长度

语法:SELECT LEN(column_name) FROM table_name

6.ROUND() 函数 ROUND 函数用于把数值字段舍入为指定的小数位数。

语法:SELECT ROUND(column_name,decimals) FROM table_name

column_name  必需。要舍入的字段。
decimals  必需。规定要返回的小数位数。

7.NOW() 函数  NOW 函数返回当前的日期和时间。

提示:如果您在使用 Sql Server 数据库,请使用 getdate() 函数来获得当前的日期时间。
语法:SELECT NOW() FROM table_name

8.CANCAT() 函数 cancat函数返回的是一个字符串

语法:select cancat(column_name1,column_name2) from table_name

cancat是将column_name2拼接到column_name1的后边

9. DISTINCT去重

语法:select DISTINCT id from table_name

将所有重复的数据只留下一个

10. 获取前12个月的数据

语法:SELECT DATE_SUB(CURDATE(), INTERVAL 12 MONTH)

#当前日期往前推12个月,查询结果形如2022-04-27

参数说明
date:日期表达式,可为字段或者获取日期的表达式,也可直接引用日期字符串比如“2023-04-27”。
interval_expr:时间间隔,可为整数,比如20。
date_type:日期类型,可为second(秒)、minute(分)、hour(小时)、day(天)、week(周)、month(月)、year(年)等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值