Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何删除包含';文本+;数字';SQL中的from列_Mysql_Sql - Fatal编程技术网

Mysql 如何删除包含';文本+;数字';SQL中的from列

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]%' 理想情况下,代

在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”或“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*)?$'