Si "MaChaîne" apparaîtra toujours comme premier terme dans le champ, cela fonctionnera :
update MyTable set MyField = replace(MyField, ' MyString','')
Le point clé ci-dessus est que nous recherchons les occurrences de "MyString" avec un espace au début, de sorte que la première occurrence au début du champ sera ignorée.
Cependant, je suppose que cela pourrait être trop fragile - que se passe-t-il si la première occurrence de "MyString" n'est pas au début du champ ?
dans ce dernier cas, vous avez besoin des éléments suivants :
UPDATE
MyTable
SET
MyField =
CONCAT(
LEFT(MyField,INSTR(MyField,'MyString') + LENGTH('MyString')),
REPLACE(RIGHT(MyField, LENGTH(MyField) - (INSTR(MyField,'MyString') + LENGTH('MyString'))), 'MyString','')
)
Cela divise le champ en deux, la première partie jusqu'à et y compris la première occurrence de "MyString", et la deuxième partie remplaçant toutes les autres occurrences de celui-ci.