如何在mysql中将姓氏和名字分成两个新列?

时间:2011-05-23 05:45:45

标签: mysql sql string

如何将姓氏和名字分隔成新列?

我在一栏中有“John& Anna Smith”,我需要把它分成“John& Anna”& “史密斯”分为两栏。我该怎么做?

从左起,没有分隔符。当我们从右边走时,分隔符就是空间。最后一个子字符串始终是姓氏。其余的是名字。

例如:

“John Smith” - >第1列中的“John”和第2列中的“Smith”

“John& Anna Smith”--->第1栏中的“John& Anna”和第2栏中的“Smith”

2 个答案:

答案 0 :(得分:1)

嘿,你可以尝试这样的事情

SELECT REPLACE('John & Anna Smith', SUBSTRING_INDEX('John & Anna Smith', ' ', -1),'') AS first_name, SUBSTRING_INDEX('John & Anna Smith', ' ', -1) AS last_name;

答案 1 :(得分:1)

  

例如:   “约翰史密斯” - >第1列中的“John”和第2列中的“Smith”   “John& Anna Smith”--->第1栏中的“John& Anna”和第2栏中的“Smith”

您必须提出规则规则集(以涵盖其他可能性)才能裁剪出名称。一种方法是在某些config / xml / table中维护规则,以便您可以在那里添加规则,即使遇到其他类型的分隔符/分隔符或条件。

您可以从查找名称中的最后一个空格开始。例如,在上面的示例中,您将文本与字符串中的最后一个空格分开。