mysql中判断字符串、列中是否包含某个字符并做截取返回

作者: admin 分类: Oracle数据库 发布时间: 2019-09-12 10:28  阅读: 121 views

有个小需求,将数据库中的标题做规划化处理,
原:

中华人民共和国专属经济区和大陆架法_1998-06-26发布  
中华人民共和国著作权法(2010修正)_2010-02-26发布    
中华人民共和国驻外外交人员法_2009-10-31发布 
...

中华人民共和国专属经济区和大陆架法
中华人民共和国著作权法
中华人民共和国驻外外交人员法

本来是打算通过java编码截取的,但是感觉代码又要多些一些。于是在sql上动手脚。

版本一

先判断字符是否存在做对应处理

select 
case instr(`subject`,'(') 
when 0 
then SUBSTRING_INDEX(`subject`,'_',1) 
else SUBSTRING_INDEX(`subject`,'(',1) end as title
from table where tid in (select tid from table where value = 'xxx');

版本二

直接截取,代码更少

select 
SUBSTRING_INDEX(SUBSTRING_INDEX(`subject`,'(',1),'_',1) as title 
from table where tid in (select tid from table where value = 'xxx');

   原创文章,转载请标明本文链接: mysql中判断字符串、列中是否包含某个字符并做截取返回

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

一条评论
  • 热搜

    2019年9月17日 00:07

    文章不错非常喜欢

发表评论

电子邮件地址不会被公开。 必填项已用*标注

更多阅读