我有一个包含带变量长度的说明的varchar字段的表。我想以下面显示的形式更新它(在第一种情况下删除20161203_
之后和LC
(1001_
)之前的部分),如果出现LC
的字符串。通过MYSQL在字符串中出现特殊事件时通过部分字符串更新字符串
例如,如果表中包含:
|col1 |
+-----+
|20161512_NL_Luxus_1_DE |
|20161217_1001_LC_YoBirthdayNo_A_CH |
|20161512_NL_SDT_4_DE|
|20170117_2003_LC_YoBirthdayYes_A_DE |
我想查询将返回:
|result|
+------+
|20161512_NL_Luxus_1_DE|
|20161217_LC_YoBirthdayNo_A_CH|
|20161512_NL_SDT_4_DE|
|20170117_LC_YoBirthdayYes_A_DE |
我想它想:
UPDATE table1 SET col1 = CASE WHEN col1 LIKE '%LC%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(col1, '_', 1), '_', 2)
但that's不正确...
在此先感谢!
'_LC_'是否总是前面有一个四位数字? –
昨天晚上我还在路上 - 现在我的回答是:现在是 - 但后来可能会更长..不管数字的数量是多少? – AbsoluteBeginner