Mysql 如何删除包含';文本+;数字';SQL中的from列
在MySQL中,我试图从列中删除特定的文本+数字值。这些值是Mysql 如何删除包含';文本+;数字';SQL中的from列,mysql,sql,Mysql,Sql,在MySQL中,我试图从列中删除特定的文本+数字值。这些值是'US+一个介于1-10'之间的数字,因此类似于'US 1.14'或'US 1.25'等。我可以删除只包含'US'的值,但不能删除包含'US[1-10]'的值。。有人知道要从列中删除“文本+数字”的SQL字符串吗 该专栏名为Geo_Targeting,我使用了以下代码变体: and GC.Geo_Targeting != '%US [0-9]%' and GC.Geo_Targeting != 'US %[0-9]%' 理想情况下,代
'US+一个介于1-10'之间的数字
,因此类似于'US 1.14'
或'US 1.25'
等。我可以删除只包含'US'
的值,但不能删除包含'US[1-10]'的值。
。有人知道要从列中删除“文本+数字”
的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*)?$'
您正在尝试使用
REGEXP
?至少会期望像这样的。不等于/不等于。可能的欺骗:我试了一下,它说我有语法错误。它说NOT_REGEXP在其位置无效我的计算机上没有MySQL,所以你需要自己做一些故障排除。如果你在谷歌上搜索如何在MySQL中使用正则表达式,你会发现很多结果。请不要使用下划线而不是regexp
Nice!这就更接近了,但我有一些值,比如“美国、加拿大”或“美国1.3、法国、德国2”等,这些值也正在被删除。有没有办法保留这些值,并且只删除只有“美国”或“美国+数字”的值?你可以分别使用“^”和$来匹配行的开头和结尾。我编辑了我的答案以反映这一点。
and GC.Geo_Targeting NOT_REGEXP '^US( \\d+.?\\d*)?$'