问题描述
|
如何将姓氏和名字分成新的列?
我在一栏中有“ John&Anna Smith”,我需要在两栏中将其分为“ John&Anna \”和“ Smith”。我该怎么做呢?
当我们从左边走时,没有定界符。当我们从右边走时,定界符是空格。最后的子字符串始终是“姓氏”。其余的是名字。
例如:
\“ John Smith \”-> \“ John \”在第1列中,并且\“ Smith \”在第2列中
\“ John&Anna Smith \” ---> \“ John&Anna \”在第1列中,并且“ Smith \”在第2列中
解决方法
嘿,你可以尝试这样的事情
SELECT REPLACE(\'John & Anna Smith\',SUBSTRING_INDEX(\'John & Anna Smith\',\' \',-1),\'\') AS first_name,-1) AS last_name;
, 例如:
\“ John Smith \”-> \“ John \”在第1列中,并且\“ Smith \”在第2列中
\“ John&Anna Smith \” ---> \“ John&Anna \”在第1列中,并且“ Smith \”在第2列中
您将必须提出规则或规则集(以涵盖其他可能性),以便能够删除名称。一种方法是将规则保留在config / xml / table中,以便您可以在其中添加规则,即使遇到其他类型的分隔符/分隔符或条件也是如此。
您可以从查找名称的最后一个空格开始。例如,在上面的示例中,您正在用字符串的最后一个空格分割文本。