sql >> データベース >  >> RDS >> Mysql

MySQLで正規表現とUPDATEを組み合わせて、FirstnameLastnameにスペースを追加する方法

    まず、REGEXPを使用したパターンマッチングでは大文字と小文字が区別されません。したがって、BINARYを使用する必要があります。

    MySQLでこれを行うためのより良い方法があるかどうかはわかりませんが、これは1つです。 AからZまでのアルファベットごとに次のクエリを実行します。A、B、C、D、E、Y、Zのクエリを指定しました。他のすべてのアルファベットについては、コピーしてください。すべての実行が完了すると、名前と名前の間にスペースができます

    UPDATE `wp_posts` 
    SET `post_title` = TRIM(REPLACE(`post_title`, 'A', ' A'))
    WHERE `post_title` REGEXP BINARY '[A]';
    
    UPDATE `wp_posts` 
    SET `post_title` = TRIM(REPLACE(`post_title`, 'B', ' B'))
    WHERE `post_title` REGEXP BINARY '[B]';
    
    UPDATE `wp_posts` 
    SET `post_title` = TRIM(REPLACE(`post_title`, 'C', ' C'))
    WHERE `post_title` REGEXP BINARY '[C]';
    
    UPDATE `wp_posts` 
    SET `post_title` = TRIM(REPLACE(`post_title`, 'D', ' D'))
    WHERE `post_title` REGEXP BINARY '[D]';
    
    UPDATE `wp_posts` 
    SET `post_title` = TRIM(REPLACE(`post_title`, 'E', ' E'))
    WHERE `post_title` REGEXP BINARY '[E]';
    
    ...
    ...
    
    UPDATE `wp_posts` 
    SET `post_title` = TRIM(REPLACE(`post_title`, 'Y', ' Y'))
    WHERE `post_title` REGEXP BINARY '[Y]';
    
    UPDATE `wp_posts` 
    SET `post_title` = TRIM(REPLACE(`post_title`, 'Z', ' Z'))
    WHERE `post_title` REGEXP BINARY '[Z]';
    

    上記のクエリ例でのBINARYの使用法に注意してください。

    別の方法は、すべてのpost_titleを読み取るPHPスクリプトを作成することです。 次に、強力なPHP正規表現関数を使用してスペースを追加し、データベースに更新します。

    これがお役に立てば幸いです!

    編集 : おー!データベースにもスペースのあるエントリがあり、無視する必要があることを忘れました。代わりにこのクエリを使用してください:

    UPDATE `wp_posts` 
    SET `post_title` = TRIM(REPLACE(`post_title`, 'A', ' A'))
    WHERE `post_title` REGEXP BINARY '[^ ][A]';
    



    1. OpenShiftでのMySQL/CodeIgniter設定

    2. DjangoプロジェクトをHerokuに移行する

    3. aspサーバーエラー'ファイルまたはアセンブリを読み込めませんでした'が、アセンブリは確実に存在します。

    4. ハロウィーンの問題–パート1