名稱字段有這種格式的全名lastname,First Name
我想將它們更改爲firstname(space)lastname
請幫忙。提取名字和姓氏
正在嘗試獲取SQL語法來完成此任務。 例如名稱出現在這樣的'林肯,亞伯拉罕」或‘林肯,亞伯拉罕的名字列。’ 我想創造另一列,這將有名字像這樣的‘亞伯拉罕·林肯’
名稱字段有這種格式的全名lastname,First Name
我想將它們更改爲firstname(space)lastname
請幫忙。提取名字和姓氏
正在嘗試獲取SQL語法來完成此任務。 例如名稱出現在這樣的'林肯,亞伯拉罕」或‘林肯,亞伯拉罕的名字列。’ 我想創造另一列,這將有名字像這樣的‘亞伯拉罕·林肯’
這將是一個更好的設計有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 |
+---------------------+-----------+------------+
即使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)));
謝謝..但是我得到這個錯誤Msg 195,Level 15,State 10,Line 3 'SUBSTRING_INDEX'不是一個公認的內置函數名稱。和消息195,第15級,狀態10,第3行 「TRIM」不是公認的內置函數名稱。 –
它工作正常,你可以在這裏驗證:http://sqlfiddle.com/#!2/b7ff68/1/0 –
@ user3518233我認爲你使用MS SQL Server而不是MySQL。這是一個典型的MS SQL Server錯誤消息。 – VMai
可以請介紹一下您的問題詳細,所以我們可以幫助你很好的方法.. :) –
一個乾淨的數據庫定義會分離first name和last命名到不同的領域。 – glglgl