To powinno być to, czego chcesz w MySQL:
UPDATE wp_post
SET post_content = CONCAT(REPLACE(LEFT(post_content, INSTR(post_content, 'A')), 'A', 'B'), SUBSTRING(post_content, INSTR(post_content, 'A') + 1));
Jest to nieco bardziej skomplikowane niż moja wcześniejsza odpowiedź - Musisz znaleźć pierwsze wystąpienie „A” (używając funkcji INSTR), a następnie użyć LEFT w połączeniu z REPLACE, aby zastąpić tylko to wystąpienie, niż użyć SUBSTRING i INSTR, aby znaleźć to samo 'A', który zastępujesz i CONCAT go z poprzednim ciągiem.
Zobacz mój test poniżej:
SET @string = 'this is A string with A replace and An Answer';
SELECT @string as actual_string
, CONCAT(REPLACE(LEFT(@string, INSTR(@string, 'A')), 'A', 'B'), SUBSTRING(@string, INSTR(@string, 'A') + 1)) as new_string;
Produkuje:
actual_string new_string
--------------------------------------------- ---------------------------------------------
this is A string with A replace and An Answer this is B string with A replace and An Answer