如何从SQL的列中删除包含“文本+数字”的值

时间:2019-01-03 18:15:31

标签: mysql sql

在MySQL中,我正在尝试从列中删除特定的text + number值。值是'US + a number between 1-10',所以类似'US 1.14''US 1.25'等。我已经能够删除仅包含'US'的值,而不能删除带有'US [1-10]'的值。是否有人知道从列中删除'text + numbers'的SQL字符串?

该列称为Geo_Targeting,我使用了以下代码变体:

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

理想情况下,代码将删除仅包含“ US”或“ US +数字”的所有值。

1 个答案:

答案 0 :(得分:1)

此正则表达式模式将匹配您要查找的值:

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

它与字符“ US”匹配,后跟一个空格,后跟一个或多个数字,然后是零或一个“'”。字符,后跟零个或多个数字。最后 ?表示它将匹配零或整个数字组之一。

您可以将其与NOT_REGEXP函数一起使用,以便仅获取与此模式不匹配的值(请注意,在MySQL中,'\'字符需要加倍)

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

如果您需要匹配具有 only 模式的值,则可以使用'^'字符匹配行的开头,并使用'$'字符匹配行的结尾。< / p>

master