まず、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]';