mysql - 如何在mysql中拆分名称字符串?

标签 mysql sql split substring

如何在mysql中拆分名称字符串?

例如:

name
-----
Sachin ramesh tendulkar
Rahul dravid

firstname,middlename,lastname一样拆分名字:

firstname   middlename    lastname
---------  ------------   ------------
sachin     ramesh         tendulkar
rahul      dravid

最佳答案

我已将此答案分为两 (2) 种方法。第一种方法会将您的全名字段分为名字、中间名和姓氏。如果没有中间名,中间名将显示为 NULL。

SELECT
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
   If(  length(fullname) - length(replace(fullname, ' ', ''))>1,  
       SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 2), ' ', -1) ,NULL) 
           as middle_name,
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 3), ' ', -1) AS last_name
FROM registeredusers

第二种方法将中间名视为姓氏的一部分。我们只会从您的全名字段中选择名字和姓氏列。

SELECT
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
    TRIM( SUBSTR(fullname, LOCATE(' ', fullname)) ) AS last_name
FROM registeredusers

您可以使用 substr、locate、substring_index 等做很多很酷的事情。查看手册是否有一些真正的困惑。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

关于mysql - 如何在mysql中拆分名称字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14950466/

相关文章:

Python:在一行中拆分、剥离和连接

mysql - 选择不同的 mysql 结果组合

java - 使用查询语言与 Java 来确定信息

mysql - 仅选择 SQL 连接中的特定列并分配 `alias`

c# - 索引超出范围异常 - C#

javascript - 如何更改单词中间字母的颜色(来自数组),javascript

mysql - 内部连接不正确的总和()

java - NULL值将文件加载到mysql表中

mysql - 显示多个mysql表的表结构

c# - 在 C# 中拆分字符串