Tout d'abord, la correspondance de modèle à l'aide de REGEXP est insensible à la casse. Vous devez donc utiliser BINARY.
Je ne sais pas s'il existe une meilleure façon de procéder dans MySQL, mais celle-ci en est une. Exécutez les requêtes suivantes pour chacun des alphabets de A à Z. J'ai donné les requêtes pour A, B, C, D, E, Y et Z. Veuillez copier pour tous les autres alphabets. Une fois que vous avez terminé de les exécuter tous, vous aurez un espace entre le prénom et le nom
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]';
Veuillez noter l'utilisation de BINARY dans les exemples de requête ci-dessus.
Une autre façon pourrait être d'écrire un script PHP pour lire tous les post_title
puis utilisez de puissantes fonctions d'expression régulière PHP pour ajouter des espaces et les mettre à jour dans la base de données.
J'espère que cela vous aidera !
MODIFIER :Oh! J'ai oublié que la base de données contient également des entrées avec des espaces et qu'elles doivent être ignorées. Veuillez plutôt utiliser cette requête :
UPDATE `wp_posts`
SET `post_title` = TRIM(REPLACE(`post_title`, 'A', ' A'))
WHERE `post_title` REGEXP BINARY '[^ ][A]';