MySQL / RegEXP / 拆分名字和姓氏

MySQL / RegEXP / Split First Name and Last Name

使用 MySQl Workbench,我正在尝试创建一个查询,在该查询中我使用具有名字和姓氏的列,并使用 REGEXP 将其拆分为 FirstName 和 LastName。

例如,如果我的列中有一个单元格包含“Tom Della 'Angelo”,我希望 FirstName 查询结果包含“Tom”,LastName 查询结果包含“Della 'Angelo”。

我试过:

SELECT "Tom Della 'Angelo"
REGEXP ".*(?:\n|$)";

但这并不 return 多,只是一个数字。

请不要简单地创建两列,一列用于第一列,一列用于第二列。请不要推荐不使用 REGEXP 的东西。

mysql> set @name = 'Tom Della ''Angelo';

mysql> select regexp_substr(@name, '^[[:alpha:]]+') as FirstName,
              regexp_replace(@name, '^[[:alpha:]]+ ', '') as LastName;
+-----------+---------------+
| FirstName | LastName      |
+-----------+---------------+
| Tom       | Della 'Angelo |
+-----------+---------------+

这些 regexp functions 需要 MySQL 8.0.