如果匹配,mysql将替换字符串中的最后一个字符

如果匹配,mysql将替换字符串中的最后一个字符,mysql,replace,tags,Mysql,Replace,Tags,我有一个表,有一些流氓标签需要更换 有问题的字符串以结尾,需要替换为 并不是所有的记录都受到影响,所以我需要找到这些记录,然后替换它们 我们使用Update Replace的技能受到限制,因为字符串中的字符不是唯一的,但它们的位置是唯一的,即最后4个字符 试过使用 UPDATE table SET field REPLACE (RIGHT(field,4),</table>) 更新表 设置字段 替换(右侧(字段4),) 但是suspec这太简单了(而且也失败了)试试这个: UPD

我有一个表,有一些流氓标签需要更换

有问题的字符串以
结尾,需要替换为

并不是所有的记录都受到影响,所以我需要找到这些记录,然后替换它们

我们使用Update Replace的技能受到限制,因为字符串中的字符不是唯一的,但它们的位置是唯一的,即最后4个字符

试过使用

UPDATE table
SET field
REPLACE (RIGHT(field,4),</table>)
更新表
设置字段
替换(右侧(字段4),)
但是suspec这太简单了(而且也失败了)

试试这个:

UPDATE table
SET field=concat(left(field,length(field) -4),'</table>')
更新表
设置字段=concat(左字段,长度字段-4),“”)

我遇到过类似的情况,需要从
事务
编号字段的末尾替换“\u1”,在该字段中有多个
出现。示例:20161124_C_BGN_5570.77_和20161121_C_HRK_1502360000_

解决方案:

UPDATE temp 
SET transaction = LEFT(transaction, LENGTH(transaction) -1) 
WHERE RIGHT(transaction, 1) = '_';
//如果是双下划线(u u)


这就是现场-谢谢,将其与此一起用于查找并替换有问题的代码更新表集合字段=concat(左(字段,长度(字段)-4),“”),其中产品描述如“%”如何更新以“101”结尾并需要替换为“102”的值。但是varchar的长度不同。最后3点是重点
UPDATE temp 
SET transaction = LEFT(transaction, LENGTH(transaction) -2) # WHERE id = xxx WHERE RIGHT(transaction, 2) = '__';