MySQL での正規表現置換の実行
正規表現を使用して MySQL データベース内のデータを変更したいと考えていますか?この質問では、MySQL でそのような機能が利用できるかどうかを調査し、MariaDB または MySQL 8.0 を使用している人向けの解決策を提供します。
正規表現置換関数
MariaDB または MySQL 8.0 では、 REGEXP_REPLACE() 関数は、データベース列内で正規表現ベースの置換を実行する機能を提供します。構文は次のとおりです。
REGEXP_REPLACE(col, regexp, replace)
関数の使用
REGEXP_REPLACE() 関数を利用するには、次のようにクエリに関数を含めます。
SELECT REGEXP_REPLACE('stackowerflow', 'ower', 'over');
これにより、出力:
stackoverflow
正規表現でのグループ化
この関数は正規表現内のグループ化をサポートしており、より複雑な置換が可能です。たとえば、次のステートメントはグループ化を使用して、一致した 2 つの単語の位置を交換します。
SELECT REGEXP_REPLACE("stackoverflow", "(stack)(over)(flow)", '\2 - \1 - \3')
これは次を返します:
over - stack - flow
Alternative Approaches
MariaDB または MySQL 8.0 を実行していないユーザーの場合は、PHP と MySQL を使用する代替アプローチを採用できます。この方法では、データを選択し、PHP を使用して正規表現を置換し、データベースを更新します。ただし、専用の REGEXP_REPLACE() 関数を使用するよりも煩雑でパフォーマンスに負荷がかかる可能性があります。
以上がMySQL で正規表現置換を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。