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

时间:2012-08-10 09:29:01

标签: mysql replace tags

我有一张桌子,里面有一些需要替换的流氓标签

违规字符串结束<tr>,需要替换为</table>

并非所有记录都受到影响,因此我需要找到这些记录然后替换它们

我们使用更新替换的技能限制在哪里限制因为字符在字符串中不是唯一的,但它们的位置是,即最后4个字符

尝试过使用

UPDATE table
SET field
REPLACE (RIGHT(field,4),</table>)

但是suspec过度简化(也失败了)

2 个答案:

答案 0 :(得分:11)

试试这个:

UPDATE table
SET field=concat(left(field,length(field) -4),'</table>')

答案 1 :(得分:2)

我遇到了类似的情况,需要在transaction数字字段的末尾替换“_”,其中字段中出现_个以上的UPDATE temp SET transaction = LEFT(transaction, LENGTH(transaction) -1) WHERE RIGHT(transaction, 1) = '_'; 。示例:20161124_C_BGN_5570.77_&amp; 20161121_C_HRK_1502360000__

解决方案:

UPDATE temp 
SET transaction = LEFT(transaction, LENGTH(transaction) -2) # WHERE id = xxx WHERE RIGHT(transaction, 2) = '__';

//如果是双下划线(__)

Recordset Type