我有一张带有地名的表格。有时他们前面还有额外的字母。例如,如果城市名称是阿斯塔纳,那么它就是s.Astana
。我只需要获取阿斯塔纳地点的名称。我想使用substr
,但我找不到第一个大写字母的索引。哦,使用西里尔字符也是一个问题。我想举几个例子:
- Акмолинская область -> Акмолинская
- Кокшетау Г.А. -> Кокшетау
- г.Кокшетау -> Кокшетау
- Красноярский с.о. -> Красноярский
- с.Красный Яр -> Красный Яр
我尝试过的:创建了一个字段 short_nameru 并以这种方式更新了它
UPDATE center_kato ck SET ck.short_nameru = case when
LENGTH(SUBSTRING_INDEX(ck.nameru , ' ', -1)) > LENGTH(SUBSTRING_INDEX(ck.nameru , ' ',1))
then SUBSTRING_INDEX(ck.nameru , ' ', -1)
else SUBSTRING_INDEX(ck.nameru , ' ',1)
END
之后我再次更新了它
UPDATE center_kato ck SET ck.short_nameru = case
when LENGTH(SUBSTRING_INDEX(ck.short_nameru , '.', -1)) > LENGTH(SUBSTRING_INDEX(ck.short_nameru , '.',1))
then SUBSTRING_INDEX(ck.short_nameru , '.', -1)
WHEN LENGTH(SUBSTRING_INDEX(ck.short_nameru , '.', -1)) < LENGTH(SUBSTRING_INDEX(ck.short_nameru , '.',1))
then SUBSTRING_INDEX(ck.short_nameru , '.',1)
ELSE ck.short_nameru
END
但我失去了一些需要的价值。"зимовка Туяк"
变成了"зимовка"
,但我需要"Туяк"