我有一个notes列,它包含文本并在文本中有一个id,类似于
“一些随机文本(actvityid-1234)”
在这种情况下,我需要取出id 1234并更新同一表中的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 '[[:<:]]{$f['activityId']}[[:>:]]'
[[:<:]]
和[[:>:]]
代表word boundaries。