Ten eerste is patroonherkenning met REGEXP niet hoofdlettergevoelig. Je moet dus BINARY gebruiken.
Ik weet niet zeker of er een betere manier is om dit in MySQL te doen, maar dit is er een. Voer de volgende query's uit voor elk alfabet van A tot Z. Ik heb de query's voor A, B, C, D, E, Y en Z gegeven. Kopieer deze voor alle andere alfabetten. Als je ze allemaal hebt uitgevoerd, heb je een spatie tussen de voor- en achternaam
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]';
Let op het gebruik van BINARY in de bovenstaande voorbeelden van zoekopdrachten.
Een andere manier zou kunnen zijn om een PHP-script te schrijven om alle post_title
. te lezen en gebruik vervolgens krachtige PHP reguliere expressiefuncties om spaties toe te voegen en deze weer bij te werken naar de database.
Ik hoop dat dit helpt!
BEWERKEN :Oh! Ik was vergeten dat de database ook items met spaties heeft en deze moeten worden genegeerd. Gebruik in plaats daarvan deze zoekopdracht:
UPDATE `wp_posts`
SET `post_title` = TRIM(REPLACE(`post_title`, 'A', ' A'))
WHERE `post_title` REGEXP BINARY '[^ ][A]';