我有一个列表,其中一个变量是Player,如果有一个玩家名字然后是“_”,那么姓氏就像这样:
Mike_Gonzalez
我想从播放器变量中创建两个新变量。第一个变量是firstName,所以我希望所有字符都在“”的左边。第二个变量是lastName,它将是“”右侧的所有字符。
我尝试过使用LEFT(播放器,LOCATE('_',播放器)),但是当我这样做时,新变量包含_。
如何在没有_的情况下运行代码来获取名字和姓氏?
感谢您的帮助。
答案 0 :(得分:8)
除了将LEFT()
和RIGHT()
与LOCATE()
结合使用外,您还可以使用 SUBSTRING_INDEX()
:
SELECT
SUBSTRING_INDEX(Player, '_', 1) AS FirstName
, SUBSTRING_INDEX(Player, '_', -1) AS LastName
答案 1 :(得分:3)
LEFT(Player, (LOCATE('_', Player) - 1))
您只需将LEFT
中第二个参数的值基本减少1即可排除_
答案 2 :(得分:0)
select distinct left(HOST,locate (':',HOST)-1) CONNECTED_HOST
from information_schema.processlist
where User != 'root'
order by 1;