名称字段的格式为lastname,First Name
的全名
我想将它们更改为firstname(space)lastname
请帮忙。
我正在尝试使用SQL语法来完成此任务。 例如,名字出现在名称栏中,如“林肯,亚伯拉罕”或“林肯,亚伯拉罕”。 我想创建另一个名为“Abraham Lincoln”的专栏
答案 0 :(得分:2)
将first_name
和last_name
作为表格中的两个单独字段,这是一种更好的设计。
您可以添加以下新列:
ALTER TABLE table_name
ADD COLUMN first_name VARCHAR(255)
, ADD COLUMN last_name VARCHAR(255)
添加这些列后,您可以通过从现有full_name_column
中提取来将值复制到其中。
update table_name
set first_name = trim( substring_index( full_name_column, ',', -1 ) )
, last_name = trim( substring_index( full_name_column, ',', 1 ) )
示例:使用substring_index
:
mysql> select @n:=' Lincoln, Abraham ' name
-> , trim( substring_index( @n, ',', 1 ) ) last_name
-> , trim( substring_index( @n, ',', -1 ) ) first_name;
+---------------------+-----------+------------+
| name | last_name | first_name |
+---------------------+-----------+------------+
| Lincoln, Abraham | Lincoln | Abraham |
+---------------------+-----------+------------+
答案 1 :(得分:0)
即使Ravinder为您提供了更好的解决方案并提供了正确的解释,但如果仍然由于某种原因您希望得到您所需要的,那么您可以使用以下查询:
ALTER TABLE MyTable ADD COLUMN `New_Name` VARCHAR(150);
UPDATE MyTable
SET `New_Name`= CONCAT(TRIM( SUBSTRING_INDEX( `Name`, ',', -1 ) ),' ',TRIM( SUBSTRING_INDEX( `Name`, ',', 1 ) ));