0

我的表中有一个名为的列,display name数据看起来像这样John Smith我正在寻找是否可以像这样拆分数据:

display name as first name => John, display name as last name => Smith

这可能吗?

4

2 回答 2

2

假设 MySQL,如果你总是有一个空格,这样的东西应该可以工作。

SELECT Substr(name, 1, Instr(name, ' ')) as FirstName,
   Substr(name, Instr(name, ' ')) as LastName
FROM DisplayName

这是一些Fiddle示例,向您展示了它是如何工作的(以及何时不工作)。

祝你好运。

于 2013-01-29T17:21:51.903 回答
0

对于这个常见问题,有多种解决方案可用。如果您只是查询数据库,那么您可以使用@sgeddes 提供的示例。

现在,如果您想获取从该查询中获得的值并将其放在它自己的列中,您将需要创建一个新列;

alter table table_name
add column first_name varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL
after col_name;

⬆️ after 语句帮助您选择新列的位置。

然后您可以使用更新语句更新所述列;

update table_name
set first_name = SUBSTRING_INDEX(SUBSTRING_INDEX(display_name, ' ', 1), ' ', -1)

这对我有用。祝你好运

于 2018-11-07T02:48:31.983 回答