如何在mysql中拆分名称字符串?
例如:
Sachin ramesh tendulkar Rahul dravid 像这样分割名称firstname,middlename,lastname:
firstname middlename lastname
sachin ramesh tendulkar rahul dravid
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
我将这个答案分为两种方法。第一种方法会将您的全名字段分为名字,中间名和姓氏。如果没有中间名,则中间名将显示为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/zh-CN/string-functions.html