Mysql REGEXP如何进行精确匹配
我有一个notes列,其中包含文本,在文本中有一个id,比如 “一些随机文本(actvityid-1234)” 在这种情况下,我需要取出ID1234并更新同一个表中的activityid列 我的问题是这样的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
"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']})%'