首页 > 解决方案 > MYSQL如何从String中获取最后第二个单词

问题描述

我正在尝试按FirstnameMiddleNameLastName拆分字符串,但在获取 MiddleName 时遇到了麻烦。这是我的查询:

select
  SUBSTRING_INDEX(admin, ' ', 1) as 'FirstName',
  SUBSTRING_INDEX(admin, ' ', +1) as 'MiddleName',
  SUBSTRING_INDEX(admin, ' ', -1) as 'LastName'
FROM fullname

我的桌子 | 编号 | 全名 | | -- | ----------------------| | 1 | 金保罗 D. Ercillo | | 2 | 列维·T·马尔克斯 | | 3 | 布赖恩 W. 笑脸 |

期望的输出
| 名字| 中间名| 姓氏 | |-----------| ---------- |-------------| | 金 | D | 埃尔西洛 | | 李维 | T | 马尔克斯 | | 布赖恩 | W | 笑脸 |

我得到的结果
| 名字| 中间名| 姓氏 | |------------|------------|-------------| | 金 | 金 | 埃尔西洛 | | 李维 |李维 | 马尔克斯 | | 布赖恩 | 布赖恩 | 笑脸 |

标签: mysql

解决方案


select
  SUBSTRING_INDEX(admin, ' ', 1) as 'FirstName',
  TRIM(TRAILING '.' FROM SUBSTRING_INDEX(SUBSTRING_INDEX(admin, ' ', -2), ' ', 1)) as 'MiddleName',
  SUBSTRING_INDEX(admin, ' ', -1) as 'LastName'
FROM
  fullname

推荐阅读