我有一个列表,其中一个变量是 Player,如果有一个球员的名字,那么一个“_”,还有这样的姓氏:
Mike_Gonzalez
我想从玩家变量中创建两个新变量。第一个变量是名字,所以我希望所有字符都在“ ”的左边。第二个变量是姓氏,它是“ ”右侧的所有字符。
我试过使用 LEFT(Player, LOCATE('_', Player)),但是当我这样做时,新变量包括 _ 。
如何在没有 _ 的情况下运行我能够获得名字和姓氏的代码?
谢谢你的帮助。
除了结合LEFT()
and RIGHT()
with LOCATE()
,您还可以使用SUBSTRING_INDEX()
:
SELECT
SUBSTRING_INDEX(Player, '_', 1) AS FirstName
, SUBSTRING_INDEX(Player, '_', -1) AS LastName
LEFT(Player, (LOCATE('_', Player) - 1))
您只需将第二个参数的值减少LEFT
1 即可排除_
select distinct left(HOST,locate (':',HOST)-1) CONNECTED_HOST
from information_schema.processlist
where User != 'root'
order by 1;