繁体   English   中英

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

[英]How to remove values that contain 'text + numbers' from column in 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 + number”的所有值。

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

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*)?$' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM