在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 +数字”的所有值。
答案 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