仅从mySQL中的特定字符的左侧和右侧获取字符

Bur*_*ter 1 mysql string locate

我有一个列表,其中一个变量是Player,如果有一个玩家名字然后是"_",并且姓氏如下:

Mike_Gonzalez
Run Code Online (Sandbox Code Playgroud)

我想从播放器变量创建两个新变量.第一个变量是firstName,所以我希望所有字符都在" "的左边.第二个变量是lastName,它将是" " 右边的所有字符.

我尝试过使用LEFT(播放器,LOCATE('_',播放器)),但是当我这样做时,新变量包含_.

我如何运行代码,我可以在没有_的情况下获取名字和姓氏?

谢谢你的帮助.

ype*_*eᵀᴹ 8

除了组合LEFT()RIGHT()使用LOCATE(),您还可以使用SUBSTRING_INDEX():

SELECT
    SUBSTRING_INDEX(Player, '_', 1) AS FirstName
  , SUBSTRING_INDEX(Player, '_', -1) AS LastName
Run Code Online (Sandbox Code Playgroud)