我想从mysql表中的字段中替换多个单词。我一直在使用多个步骤:
update table1 set fld1=replace(fld1,'and', '');
update table1 set fld1=replace(fld1,'or', '');
update table1 set fld1=replace(fld1,'xor', '');
...
我如何单步执行?
答案 0 :(得分:4)
丑陋的方式......
UPDATE table1 SET fld1 = replace(replace(replace(fld1, 'and', ''), 'xor', ''), 'or', '')
请注意,如果在'xor'之前替换'或',它将匹配'xor'的一部分并保留x,因此顺序很重要。
答案 1 :(得分:1)
您可以撰写replace
来电:
update table1
set fld1 = replace(replace(replace(fld1, 'xor', ''), 'or', ''), 'and', '');
我认为这是MySQL中最好的,无需编译额外的用户定义函数。 PostgreSQL和(AFAIK)Oracle具有完整的正则表达式支持,但MySQL仅支持正则表达式匹配。
如果你必须做很多这类事情,那么你可能想在数据库之外做这件事,以获得一个不涉及疯狂级别的嵌套replace
函数的合理解决方案。