Mysql:删除字段中字符串的所有出现,除了先导致奇怪的行为

时间:2017-02-13 14:42:12

标签: mysql replace find-occurrences

我正在寻找一种方法,让几天前在一个字段中只发出一个相同的字符串,有人给了我一个非常好的答案。 我的想法是改变这样一个领域:

 MyString OtherString MyString AnotherString AndAnother MyString

进入

MyString OtherString AnotherString AndAnother

我给出的解决方案是:

UPDATE 
MyTable 
SET 
MyField = 
CONCAT(
    LEFT(MyField,INSTR(MyField,'MyString') + LENGTH('MyString')), 
    REPLACE(RIGHT(MyField, LENGTH(MyField) - (INSTR(MyField,'MyString') + LENGTH('MyString'))), 'MyString','') 
)

虽然它完成了这项工作,但它在某些领域变得混乱,将'MyString'变为

'MyyyyyStrrrriing' or 'MyString ng ng', 'MyString ing' and so on(there's so many variations going on)
哎呀,即使是在该领域的另一个字符串,例如:

OtheeeeeeeeeeeeeeeeeeeeeeerString

AndAnothertherthertherther

有关如何进一步完善此解决方案的任何想法吗?

原始问题: MySQL : replace occurence of a string in field except first one

0 个答案:

没有答案