Как удалить значения, содержащие «текст + числа» из столбца в SQL - PullRequest
0 голосов
/ 03 января 2019

В MySQL я пытаюсь удалить определенные значения типа текст + число из столбца.Значения 'US + a number between 1-10', что-то вроде 'US 1.14' или 'US 1.25' и т. Д. Мне удалось удалить значения, которые содержат только 'US', но не значения 'US [1-10]'.Кто-нибудь знает строку SQL для удаления 'text + numbers' из столбца?

столбец называется Geo_Targeting, и я использовал следующие варианты кода:

and GC.Geo_Targeting != '%US [0-9]%'
and GC.Geo_Targeting != 'US %[0-9]%'

В идеале код удалял бы любые значения, содержащие только «США» или «номер США +»..

1 Ответ

0 голосов
/ 03 января 2019

Этот шаблон регулярного выражения будет соответствовать значениям, которые вы ищете:

US( \d+.?\d*)?

Соответствует символам 'US', за которыми следует пробел, за которым следуют одна или несколько цифр, а затем ноль или одна '.' символы, за которыми следуют ноль или более цифр. Последний ? означает, что оно будет соответствовать нулю или одной группе цифр.

Вы можете использовать его с функцией NOT_REGEXP, чтобы получать только те значения, которые не соответствуют этому шаблону (обратите внимание, что символы '\' необходимо удвоить в mySQL)

and GC.Geo_Targeting NOT_REGEXP 'US( \\d+.?\\d*)?' 

Если вам нужно сопоставить значения, которые имеют этот шаблон только , вы можете использовать символ '^', чтобы соответствовать началу строки, и символ '$', чтобы соответствовать концу.

and GC.Geo_Targeting NOT_REGEXP '^US( \\d+.?\\d*)?$' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...