2013-02-12 52 views
0

我認爲這很容易......也許不是。我有一個'全名'的表,我想把名字和姓氏分成2列(fname和lname)。MySQL拆分單列

下面的語法給我我想要的數據:

SELECT 
`fullname` , 
SUBSTRING_INDEX(SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1) AS fname, 
SUBSTRING_INDEX(`fullname` ,' ', 1)AS lname 
FROM MyTable 

...但我怎麼然後採取「FNAME」和「L-NAME」的字段,並將它們保存在同一個表中分離列?

[示例數據 - 如果人的名字是約翰·邁克爾·瓊斯「全名」字段是這樣的:JONES約翰·邁克爾]

回答

0

您只需更新您的表和列設置的子字符串fullname

update MyTable 
set fname = SUBSTRING_INDEX(SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1), 
    lname = SUBSTRING_INDEX(`fullname` ,' ', 1) 
0

如果你想在同一個表進行更新,你可以使用以下命令:

update mytable 
set fname = SUBSTRING_INDEX(SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1), 
    lname = SUBSTRING_INDEX(`fullname` ,' ', 1) 

SQL Fiddle with Demo,你要更新到名字ANS姓氏值

0

,那麼你需要使用的更新:

update MyTable 
set fname = SUBSTRING_INDEX(SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1), 
    lname = SUBSTRING_INDEX(`fullname` ,' ', 1) 

,如果你想用大寫來設置,則用戶上的功能以及

update MyTable 
    set fname = upper(SUBSTRING_INDEX(SUBSTRING_INDEX(`fullname` ,' ', 2) ,' ' ,-1)), 
     lname = upper(SUBSTRING_INDEX(`fullname` ,' ', 1))