开发者社区> 问答> 正文

将值从一个字段拆分为两个

我有一个表字段membername,其中包含用户的姓氏和名字。是否有可能分裂成那些2场memberfirst,memberlast?

所有记录的格式均为“名字的姓氏”(不带引号,中间还有空格)。

展开
收起
保持可爱mmm 2020-05-10 18:42:35 357 0
1 条回答
写回答
取消 提交回答
  • 不幸的是,MySQL没有分割字符串功能。但是,您可以为此创建一个用户定义的函数,例如以下文章中描述的函数:

    Federico Cargnelutti撰写的MySQL Split String Function 使用该功能:

    DELIMITER $$

    CREATE FUNCTION SPLIT_STR( x VARCHAR(255), delim VARCHAR(12), pos INT ) RETURNS VARCHAR(255) DETERMINISTIC BEGIN RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos), LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1), delim, ''); END$$

    DELIMITER ; 您将可以按照以下方式构建查询:

    SELECT SPLIT_STR(membername, ' ', 1) as memberfirst, SPLIT_STR(membername, ' ', 2) as memberlast FROM users; 如果您不想使用用户定义的函数,并且不介意查询更加冗长,则还可以执行以下操作:

    SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 1), ' ', -1) as memberfirst, SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 2), ' ', -1) as memberlast FROM users;来源:stack overflow

    2020-05-10 18:42:54
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载