【问题标题】:Taking only characters from the left and right of a specific character in mySQL只取mySQL中特定字符左右两侧的字符
【发布时间】:2011-10-22 01:04:05
【问题描述】:

我有一个列表,其中一个变量是玩家,如果有一个玩家的名字,那么一个“_”,还有这样的姓氏:

Mike_Gonzalez

我想从播放器变量中创建两个新变量。第一个变量是名字,所以我希望所有字符都在“”的左边。第二个变量是姓氏,它是“”右边的所有字符。

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

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

感谢您的帮助。

【问题讨论】:

    标签: mysql string locate


    【解决方案1】:

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

    SELECT
        SUBSTRING_INDEX(Player, '_', 1) AS FirstName
      , SUBSTRING_INDEX(Player, '_', -1) AS LastName
    

    【讨论】:

      【解决方案2】:
      LEFT(Player, (LOCATE('_', Player) - 1))
      

      您只需将LEFT 中的第二个参数的值减 1 即可排除_

      【讨论】:

        【解决方案3】:
        select distinct left(HOST,locate (':',HOST)-1) CONNECTED_HOST 
        from information_schema.processlist 
        where User != 'root' 
        order by 1;
        

        【讨论】:

          猜你喜欢
          • 2016-04-15
          • 1970-01-01
          • 2021-07-28
          • 2022-12-05
          • 2016-09-25
          • 1970-01-01
          • 1970-01-01
          • 2011-03-27
          • 1970-01-01
          相关资源
          最近更新 更多