Pertama, pencocokan pola menggunakan REGEXP tidak peka huruf besar-kecil. Jadi Anda harus menggunakan BINARY.
Saya tidak yakin apakah ada cara yang lebih baik untuk melakukan ini di MySQL tetapi ini adalah salah satunya. Jalankan kueri berikut untuk setiap alfabet dari A hingga Z. Saya telah memberikan kueri untuk A, B, C, D, E, Y dan Z. Silakan salin untuk semua alfabet lainnya. Setelah Anda selesai menjalankan semuanya, Anda akan memiliki spasi antara nama depan dan belakang
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]';
Harap perhatikan penggunaan BINARY dalam contoh kueri di atas.
Cara lain mungkin dengan menulis skrip PHP untuk membaca semua post_title
lalu gunakan fungsi ekspresi reguler PHP yang kuat untuk menambahkan spasi dan memperbaruinya kembali ke database.
Semoga ini bisa membantu!
EDIT :Oh! Saya lupa bahwa database juga memiliki entri dengan spasi dan harus diabaikan. Silakan gunakan kueri ini sebagai gantinya:
UPDATE `wp_posts`
SET `post_title` = TRIM(REPLACE(`post_title`, 'A', ' A'))
WHERE `post_title` REGEXP BINARY '[^ ][A]';