我的表中有一个名为的列,display name
数据看起来像这样John Smith
我正在寻找是否可以像这样拆分数据:
display name as first name => John, display name as last name => Smith
这可能吗?
假设 MySQL,如果你总是有一个空格,这样的东西应该可以工作。
SELECT Substr(name, 1, Instr(name, ' ')) as FirstName,
Substr(name, Instr(name, ' ')) as LastName
FROM DisplayName
这是一些Fiddle示例,向您展示了它是如何工作的(以及何时不工作)。
祝你好运。
对于这个常见问题,有多种解决方案可用。如果您只是查询数据库,那么您可以使用@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)
这对我有用。祝你好运