需求:远路 225/60R17 FRD66/HT 去除第一个'/' 远路 22560R17 FRD66/HT .
说说我面临的问题:
客户要求我把第一个R和/去除,由于我的数据量过大,然后我进行批量操作。所以我在查询写查询语句的是后把每种可能性都列出来了。
我为什么加上case when 是因为我的数据库存在没有 '/' 和‘R’的情况,不加会导致我的R报错。
批量修改数据库,请1 备份 2 查询 3 修改
select
LENGTH('远路 225/60R17 FRD66/HT ' )- LENGTH(REPLACE('远路 225/60R17 FRD66/HT ' ,'/',''))as '/出现的次数',
INSTR('远路 225/60R17 FRD66/HT ' ,'/') '/首次出现的位置',
SUBSTRING_INDEX('远路 225/60R17 FRD66/HT ' ,'/',1) as '/首次出现前的字符串',
SUBSTRING('远路 225/60R17 FRD66/HT ' ,INSTR('远路 225/60R17 FRD66/HT ' ,'/')+1,LENGTH('远路 225/60R17 FRD66/HT ' )) as '/首次出现后的字符串',
case when LENGTH('远路 225/60R17 FRD66/HT ' )- LENGTH(REPLACE('远路 225/60R17 FRD66/HT ' ,'/',''))>0
then
CONCAT(SUBSTRING_INDEX('远路 225/60R17 FRD66/HT ' ,'/',1),SUBSTRING('远路 225/60R17 FRD66/HT ' ,INSTR('远路 225/60R17 FRD66/HT ' ,'/')+1,LENGTH('远路 225/60R17 FRD66/HT ' )))
else '远路 225/60R17 FRD66/HT ' end
as '我最终想要的结果',
'远路 225/60R17 FRD66/HT ' as '初始数据';