Po pierwsze, dopasowywanie wzorców przy użyciu REGEXP nie uwzględnia wielkości liter. Musisz więc użyć BINARY.
Nie jestem pewien, czy istnieje lepszy sposób na zrobienie tego w MySQL, ale to jest jeden. Uruchom następujące zapytania dla każdego alfabetu od A do Z. Podałem zapytania dla A, B, C, D, E, Y i Z. Skopiuj dla wszystkich innych alfabetów. Gdy skończysz je wszystkie, będziesz mieć spację między imieniem i nazwiskiem
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]';
Zwróć uwagę na użycie BINARY w powyższych przykładach zapytań.
Innym sposobem może być napisanie skryptu PHP, który odczyta wszystkie post_title
a następnie użyj potężnych funkcji wyrażeń regularnych PHP, aby dodać spacje i zaktualizować je z powrotem w bazie danych.
Mam nadzieję, że to pomoże!
EDYTUJ :Oh! Zapomniałem, że w bazie są też wpisy ze spacjami i trzeba je zignorować. Zamiast tego użyj tego zapytania:
UPDATE `wp_posts`
SET `post_title` = TRIM(REPLACE(`post_title`, 'A', ' A'))
WHERE `post_title` REGEXP BINARY '[^ ][A]';