2

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

Mike_Gonzalez

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

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

如何在没有 _ 的情况下运行我能够获得名字和姓氏的代码?

谢谢你的帮助。

4

3 回答 3

10

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

SELECT
    SUBSTRING_INDEX(Player, '_', 1) AS FirstName
  , SUBSTRING_INDEX(Player, '_', -1) AS LastName
于 2011-10-22T01:10:10.060 回答
3
LEFT(Player, (LOCATE('_', Player) - 1))

您只需将第二个参数的值减少LEFT1 即可排除_

于 2011-10-22T01:06:39.963 回答
0
select distinct left(HOST,locate (':',HOST)-1) CONNECTED_HOST 
from information_schema.processlist 
where User != 'root' 
order by 1;
于 2017-03-22T20:48:57.893 回答