Извлечение конкретного текста из строки - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть поле Varchar с информацией в нем.В качестве части информации указывается страна, которая во всех случаях указывается в качестве первого элемента строки.То, что я хочу сделать, это запустить скрипт, который извлечет из поля первую букву строки, включая последнюю букву перед первым пробелом в строке.Затем я извлек его и поместил в отдельное поле в той же строке

Ответы [ 3 ]

0 голосов
/ 11 февраля 2019

Вы можете использовать substring_index():

select substring_index(col, ' ', 1) as country

Если в строке нет пробела, вы получите полную строку.так что это кажется "безопасным".

Примечание: это не будет работать для всех стран.У многих есть несколько имен.От "Соединенных Штатов Америки" и "Соединенного Королевства" до новейшего названия "Северная Македония"

0 голосов
/ 11 февраля 2019

Я думаю, что SUBSTRING_INDEX может сделать эту работу.

SELECT SUBSTRING_INDEX(`name`, ' ', 1) AS countryName
FROM tableName;

//SUBSTRING_INDEX(str,delimiter,count)

, вы можете найти больше информации об этой функции здесь

0 голосов
/ 11 февраля 2019

Если вы используете MySQl 8, вы можете использовать REGEXP_SUBSTR

select REGEXP_SUBSTR('Canada Test JohnDoe', '^[A-Za-z]+') o from dual

для Mysql 5.5 +

with cte as
(
   select 'Canada Test JohnDoe' x from dual
)
select SUBSTR(x, 1, LOCATE(' ', x)) o from cte
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...