Взятие только символов слева и справа от конкретного символа в MySQL - PullRequest
1 голос
/ 22 октября 2011

У меня есть таблица со списком, где одной из переменных является Player, а если имя игрока, то "_" и фамилия, подобная этой:

Mike_Gonzalez

Я хотел бы создать двеновые переменные из переменных игрока.Первой переменной будет firstName, поэтому я бы хотел, чтобы все символы находились слева от "".Второй переменной будет lastName, и это будут все символы справа от «».

Я пытался использовать LEFT (Player, LOCATE ('_', Player)),но когда я это сделаю, новая переменная включает в себя _.

Как я могу запустить код, где я смог бы получить имя и фамилию без _?

Спасибо за любыеПомогите.

Ответы [ 3 ]

8 голосов
/ 22 октября 2011

Помимо объединения LEFT() и RIGHT() с LOCATE(), вы также можете использовать SUBSTRING_INDEX():

SELECT
    SUBSTRING_INDEX(Player, '_', 1) AS FirstName
  , SUBSTRING_INDEX(Player, '_', -1) AS LastName
3 голосов
/ 22 октября 2011
LEFT(Player, (LOCATE('_', Player) - 1))

Вы просто уменьшаете значение второго параметра в LEFT на 1, чтобы исключить _

0 голосов
/ 22 марта 2017
select distinct left(HOST,locate (':',HOST)-1) CONNECTED_HOST 
from information_schema.processlist 
where User != 'root' 
order by 1;
...