mysql截取字符串(SUBSTRING_INDEX)

前言

手头有fix的任务,需要在mysql中,根据某个url截取部分字符串作为openId,url格式为xxxx.com/202012/t20201216_15360838.html,截取其中的t20201216_15360838出来作为openId,截取202012作为yyyy-mm的日期格式。

解决方案

1.mysql截取 /. 中间的字符作为openId

  • SUBSTRING_INDEX(u.url,’/’,-1) 为根据 / 进行截取,获取后面的字符串
  • SUBSTRING_INDEX(u.url,’.’,1) 为根据 . 进行截取,获取前面的字符串

这样一来,用法就很明了了 ,开始实践把。

update unit u set u.open_id = SUBSTRING_INDEX(SUBSTRING_INDEX(u.url,'/',-1),'.',1)
where length(u.open_id)<1;

2.例如拿year&month
xxxx.com/202012/t20201216_15360838.html

  • 先拿倒数第二个/以后的内容SUBSTRING_INDEX(u.url,'/',-2)
  • 再拿正数第一个/前面的内容SUBSTRING_INDEX(x,'/',1)
#check before do
select SUBSTRING_INDEX(SUBSTRING_INDEX(u.url,'/',-2),'/',1) from unit u;
#update
update unit u set u.yearMonth= SUBSTRING_INDEX(SUBSTRING_INDEX(u.url,'/',-2),'.',1)
where yearMonth is null;
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页