我在一列中包含全名的列中发送了一些数据。问题是,有些名字的分裂非常奇怪:
John A Smith
Mary X Van Halen
A B Buckman Jr
Abby De Lucio von Garro
等
我真的想将它们解析为逻辑名字/姓氏字段。我用这个去除了最后一个空格后的字符串:
last_name = SUBSTRING_INDEX(full-name,' ',-1)
如何选择最后一个空格左侧的所有内容?这将使我获得我需要的98%,其余的我可以在代码中清理。例如,我想选择:
John A
Mary X Van
A B Buckman
Abby De Lucio von
解决
SUBSTRING_INDEX(fullname,' ',CHAR_LENGTH(fullname) - CHAR_LENGTH(REPLACE(fullname, ' ', '')))
答案 0 :(得分:2)
在找到最后一个空格
后获取字符串长度的左侧部分SELECT
LEFT(full-name, LENGTH(full-name) - LOCATE(' ', REVERSE(full-name))+1)
FROM table;