当前位置: 首页 > 面试题库 >

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

沈子昂
2023-03-14
问题内容

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

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


问题答案:

不幸的是,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;


 类似资料:
  • 问题内容: 我有这串 如何将此字符串拆分为每个子字符串包含2个字符的子字符串?我很困惑,因为我找不到分隔符来分隔它们。 问题答案:

  • 这里对python非常陌生。如何将很长的字典值拆分为两行,同时在使用print()输出时仍显示为一行?请参见下面的代码。 我尝试过使用三重引号(即“”),但没有成功,因为我认为从技术上讲,值不是字符串。

  • 我有一个Akka Streams,我想根据谓词将其分成两个源。 例如。有一个源(类型被有意简化): 还有两种方法: 我希望能够拆分根据谓词,并将右侧部分传递给方法,左侧部分传递给方法。 我尝试使用拆分器,但它需要s结尾。

  • 我有一个数据帧,并希望将数据帧分割成两个基于多个列。 df的所有行都应该没有空列,状态为“是”。Rest应该在df_null上 德国行不在结果数据框中,因为它已被过滤掉。

  • 问题内容: 我有一个值为的字符串。我想将字符串分成两个字符串,值为的字符串和的值为字符串。 正确的功能/语法是什么? 我已经看过了,但是找不到将数据返回到两个单独的字符串中的实际语法。 问题答案: 该功能适用于:

  • 如果我有一个字符串,比如,是否可以使用作为字符串拆分的点,将字符串拆分为两个字符串?