問題:
データベースに破損したデータを含むレコードが含まれています特定の列。具体的には、特定の文字が誤ってエスケープされ、生成されたリンクの機能が中断されます。目的は、MySQL replace() 関数を使用して、影響を受けるすべてのレコード内のこれらの誤った文字を置き換えることです。
解決策:
MySQL で replace() 関数を使用するには、構文に従います:
UPDATE MyTable SET StringColumn = REPLACE(StringColumn, 'SearchForThis', 'ReplaceWithThis') WHERE SomeOtherColumn LIKE '%PATTERN%';
指定されたシナリオでは、文字列「<」を置き換える必要があります。リテラルの山かっこ「<」を使用「<」を含むすべてのレコードのarticleItem列。これらの文字が「GREATERTHAN」にエスケープされた可能性を考慮すると、クエリは次のようになります:
UPDATE MyTable SET articleItem = REPLACE(articleItem, 'GREATERTHAN', '>');</p> <p>置換が必要な文字が複数ある場合、replace() 関数をネストできます:</p> <pre class="brush:php;toolbar:false">UPDATE MyTable SET articleItem = REPLACE(REPLACE(articleItem, 'GREATERTHAN', '>'), 'LESSTHAN', '<');
単一クエリのアプローチ:
上記のクエリは複数のクエリを置換するために使用できます。単一のクエリ内の文字。データの選択中に置換を実行することも可能です:
SELECT REPLACE(MyURLString, 'GREATERTHAN', '>') AS MyURLString FROM MyTable;
この例では、元の列を更新する代わりに、置換された文字列が MyURLString として返されます。
以上が「REPLACE()」関数を使用して MySQL レコード内の複数の文字列を正しく置換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。