[英]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.