SQL拆分列数据

时间:2013-01-29 17:11:20

标签: sql split

我的表格中有一个名为display name的列,数据看起来像John Smith我想查看是否有分离数据的情况如下:

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

这可能吗?

2 个答案:

答案 0 :(得分:2)

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

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

以下是一些示例Fiddle,它向您展示了它的工作原理(以及它的工作原理)。

祝你好运。

答案 1 :(得分: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)

这对我有用。祝你好运