我的表格名称中包含以下列:STAT 如果有人可以协助编写mysql脚本,那将很有帮助 我想将字符串分成两列。但是,仅应根据最后一个字(即区域,如下面的示例所示)进行拆分。 如果该地区是北美地区,则存在一个例外,则应考虑最后两个词来进行拆分,请参见下文 该脚本应将新列添加到名为STAT的现有表中,或添加到新表中。
---------------------
Name
---------------------
P1 xx ASPAC
P1 yy EMEA
P1 zz uu EMEA
P2 oouu_xsh-s EMEA
P2 xx tt North America
---------------------
P2 Region
---------------------
P1 xx ASPAC
P1 yy EMEA
P1 zz uu EMEA
P2 oouu_xsh-s EMEA
P2 xx tt North America
答案 0 :(得分:1)
如果您使用的是MySQL 8.0,则可以使用import re
with open('./samplestring.txt') as f:
header =[]
nonheader = []
yourString = f.read()
for line in content.splitlines():
if(re.match('(^[A-Z]?-?[A-Z]:)|(^[A-Z]\.)',line.lstrip())):
header.append(line)
else:
nonheader.append(line)
函数使用正则表达式拆分字符串。
正则表达式REGEXP_REPLACE()
将字符串分成两部分:字符串最后一个空格之前的所有内容都将移至特殊变量^(.*) (.*)$
,最后一个空格之后的所有内容均将移至$1
。当字符串以$2
结尾时,需要特别注意。
考虑:
North America
name | P2 | Region :--------------------- | :------------ | :------------ P1 xx ASPAC | P1 xx | ASPAC P1 yy EMEA | P1 yy | EMEA P1 zz uu EMEA | P1 zz uu | EMEA P2 oouu_xsh-s EMEA | P2 oouu_xsh-s | EMEA P2 xx tt North America | P2 xx tt | North America