从列中获取值并拆分

时间:2015-09-03 17:57:46

标签: mysql

我试图从表格

中获取名称

Id        Name 
1         John Doe
2         Tom Cruise
3         Christopher Ashton Kutcher
4         Mel Gibson
5         David Jude Law
6         Brad Pitt

我的方法是

SELECT
    SUBSTRING_INDEX(Name, ' ', 1) AS FirstName,
    SUBSTRING_INDEX(Name, ' ', -1) AS LastName,
FROM Table

但是在上面的表中有一些名字也有中间名,所以我的方法是我错过名字,例如名字Christopher Ashton Kutcher我得Ashton Kutcher作为输出

注意:只要我LastName FirstNameprintln输出中也会有中间名,这无关紧要。

那么将会有什么工作?

1 个答案:

答案 0 :(得分:1)

由于您不关心中间名是否与姓氏混淆并且您在' '分裂,这应该有效。

select substring(name, 1, instr(name,' ')-1) as first_name,
       replace(name, substring(name, 1, instr(name,' ')-1), '') as last_name
from table;

Fiddle