Skip to content

数据库函数

mybatis-mp 已为你适配了各种数据库,这意味着你可以不用关系具体的数据库

数据库函数使用方法

java
Integer id = QueryChain.of(sysUserMapper)
    //方法 1    
    .selectselect(SysUser::getId, c -> c.sin().as("x_sin"))
    .from(SysUser.class)
    .eq(SysUser::getId, 2)
    //方法 2
    .and(queryChain -> {
        return queryChain.$(SysUser::getCreate_time, c -> c.date().eq("2023-12-10"));
    })
    //方法 3
    .and(queryChain -> {
        return Methods.date(queryChain.$(SysUser::getCreate_time)).eq("2023-12-10");
    })
    .empty(SysUser::getUserName)
    //方法 1     
    .orderBy(SysUser::getId, c -> c.plus(1))
    .returnType(Integer.TYPE)
    .get();

数据库函数说明

支持的函数函数说明
count查询数据总量
sum返回指定字段值的和
avg返回指定列的平均值
min返回指定列的最小值
max返回指定列的最大值
abs返回绝对值
ceil返回大于或等于 x 的最小整数(向上取整)
floor返回小于或等于 x 的最大整数(向下取整)
rand返回 0~1 的随机数
sign返回 x 的符号,x 是负数、0、正数分别返回 -1、0、1
pi返回圆周率
truncate返回数值 x 保留到小数点后 y 位的值
round返回离 x 最近的整数(四舍五入)
pow返回 x 的 y 次方
power返回 x 的 y 次方
sqrt返回 x 的平方根
exp返回 e 的 x 次方
mod取模
log返回自然对数(以 e 为底的对数)
log2返回以 2 为底的对数
log10返回以 10 为底的对数
radians将角度转换为弧度
degrees将弧度转换为角度
sin求正弦值
asin求反正弦值
cos求余弦值
acos求反余弦值
tan求正切值
atan求反正切值
cot求余切值
charLength返回字符串 s 的字符数
length返回字符串 s 的长度
concat字符串拼接
concatWs字符串拼接,需要指定分割符
upper转大写
lower转小写
left左截取
right截取
lpad从左字符串 补全,需要补全的字符和长度
rpad从右字符串 补全,需要补全的字符和长度
trim去除两边的空格
ltrim去除左边的空格
rtrim去除右边的空格
repeat将字符串 s 重复 n 次
replace用字符串 s2 代替字符串 s 中的字符串 s1
strcmp比较字符串 s1 和 s2
substring获取从字符串 s 中的第 n 个位置开始长度为 len 的字符串
instr从字符串 s 中获取 s1 的开始位置
reverse将字符串 s 的顺序反过来
field返回第一个与字符串 s 匹配的字符串的位置
findInSet返回在字符串 s2 中与 s1 匹配的字符串的位置
currentDate返回当前日期
currentTime返回当前时间
currentDateTime返回当前日期和时间
unixTimestamp以 UNIX 时间戳的形式返回当前时间
fromUnixTime把 UNIX 时间戳的时间转换为普通格式的时间
month日期 d 中的月份值,范围是 1~12
weekday日期星期几,0 表示星期一,1 表示星期二
year返回年
day返回日期的天数值
hour返回时间 t 中的小时值
dateDiff计算日期 d1 到 d2 之间相隔的天数
dateAdd日期加操作
dateSub日期减操作
md5字符串md5 加密
inetAton将 IP 地址转换为数字表示,IP 值需要加上引号
inetNtoa将数字 n 转换成 IP 的形式