mysql正则匹配和 区分大小写 和mybatisplus.apply使用

SELECT
	id,
	host_id,
	last_value,
	prev_value,
	clock,
	units,
	item_key 
FROM
	monitor_history_data 
WHERE
	( host_id = 8 AND clock BETWEEN '2022-02-16T10:26:53.031+0800' AND '2022-02-16T11:26:53.031+0800' AND item_key REGEXP '^vfs.fs.size.*,pused]$' ) 
ORDER BY
	clock ASC

今天看大哥写的代码 才知道 原来正则基本所有语言都可以使用

mysql 正则关键字 REGEXP
看一下后端代码

List<MonitorHistoryData> diskList = monitorHistoryDataService.list(new QueryWrapper<MonitorHistoryData>().lambda()
                .eq(MonitorHistoryData::getHostId, host.getHostId())
                .between(MonitorHistoryData::getClock,beginTime,endTime)
               .apply("item_key REGEXP '^vfs.fs.size.*,pused]$'")
                .orderByAsc(MonitorHistoryData::getClock));

上句sql就是这个传输的
.apply(“item_key REGEXP ‘^vfs.fs.size.*,pused]$’”)

使用的myatisplus 得apply来传输得 。该方法可用于数据库函数 动态入参的params对应前面applySql内部的{index}部分
返回数据
返回数据
如果要区分大小写的 需要加入 BINARY 这个关键字

-- 不区分大小写
SELECT * FROM sys_user WHERE sys_user.username REGEXP  '^a';

-- 区分大小写

SELECT * FROM sys_user WHERE sys_user.username REGEXP BINARY '^a';

官方文档
之前用得是like 来查的 但是只能匹配前后 不能匹配中间
REGEXP mysql 正则
^ 行首的位置
* 匹配前面的子表达式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等价于{0,}。
$ 匹配行末位置

正则参考链接
更多mysql 正则参考链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值