sql >> Database >  >> RDS >> Mysql

Hoe regex + UPDATE in MySQL te combineren om een ​​spatie toe te voegen aan FirstnameLastname

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]';



  1. Probleem met tijdelijke RODBC-tabel bij verbinding met MS SQL Server

  2. Databasespecifieke migratiecode

  3. Waarom zou een IN-voorwaarde langzamer zijn dan =in sql?

  4. Typen SQL Server-cursor - Alleen doorsturen dynamische cursor | SQL Server-zelfstudie / TSQL-zelfstudie