Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 REGEXP如何进行精确匹配_Mysql_Regex - Fatal编程技术网

Mysql REGEXP如何进行精确匹配

Mysql REGEXP如何进行精确匹配,mysql,regex,Mysql,Regex,我有一个notes列,其中包含文本,在文本中有一个id,比如 “一些随机文本(actvityid-1234)” 在这种情况下,我需要取出ID1234并更新同一个表中的activityid列 我的问题是这样的 "UPDATE table_name SET activityId = {$f['activityId']} WHERE notes REGEXP '{$f['activityId']}' " 问题是如果$f['activityId']是34或123,例如,它仍然使用该值更新activit

我有一个notes列,其中包含文本,在文本中有一个id,比如 “一些随机文本(actvityid-1234)”

在这种情况下,我需要取出ID1234并更新同一个表中的activityid列

我的问题是这样的

"UPDATE table_name SET activityId = {$f['activityId']} WHERE notes REGEXP '{$f['activityId']}' "
问题是如果$f['activityId']是34或123,例如,它仍然使用该值更新activityId列。如何在“1234”上进行精确匹配,并且仅当它匹配整个字符串(此处为“1234”)时才进行更新

非常感谢

WHERE notes REGEXP CONCAT('(actvityid - ', {$f['activityId']}, ')')

WHERE notes REGEXP'[[::]]

[[[::]]
代表。

如果从PHP传递变量,则无需使用CONCAT, 如果您匹配的是没有特殊字符的精确字符串,则无需使用REGEXP

WHERE notes LIKE '%(actvityid - {$f['activityId']})%'

您好,为了让它更清楚,“注释”列包含类似于“项目13084上的abc更新阶段(活动-309)”的文本,现在我需要拉出309并在同一个表中更新avtivityId coulmn。@Naktibalda:使用like时也有同样的问题。@Bharath您不能在更新表时从同一个查询中读取它,如果这就是你想要做的。不,我不想这么做。我正试图做这样的事情:“更新表名称集SETVITYIDID= {$F[[ Activity VIIDID ] ] },其中注解ReXEP {{$F[AccViviID’}}”现在考虑注释为“ABC更新项目13084阶段(活动- 309)”。应用上述查询时,假设$f['activityId']为30,则查询将工作并使用值30更新activityId列。这正是我的问题所在。仅当包含注释(Activity-309)且$f['activityId']=309时,我才需要更新activityId列。非常抱歉,如果我没有正确地提出这个问题。@bharath如果
(activityid-
部分保证是相同的,为什么不像另一个答案中建议的那样使用
WHERE notes LIKE '%(actvityid - {$f['activityId']})%'