sql >> Database teknologi >  >> RDS >> Mysql

Sådan kombineres regex + UPDATE i MySQL for at tilføje et mellemrum til FornavnEfternavn

For det første er mønstermatchning ved hjælp af REGEXP ufølsom over for store og små bogstaver. Så du er nødt til at bruge BINÆR.

Jeg er ikke sikker på, om der er en bedre måde at gøre dette på i MySQL, men dette er en. Kør følgende forespørgsler for hvert af alfabeterne fra A til Z. Jeg har givet forespørgslerne for A, B, C, D, E, Y og Z. Kopier venligst for alle andre alfabeter. Når du har gennemført dem alle, vil du have et mellemrum mellem for- og efternavne

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

Bemærk venligst brugen af ​​BINARY i ovenstående forespørgselseksempler.

En anden måde kan være at skrive et PHP-script for at læse alle post_title og brug derefter kraftfulde PHP regulære udtryksfunktioner til at tilføje mellemrum og opdatere dem tilbage til databasen.

Håber dette hjælper!

REDIGER :Åh! Jeg glemte, at databasen også har indgange med mellemrum, og de skal ignoreres. Brug venligst denne forespørgsel i stedet:

UPDATE `wp_posts` 
SET `post_title` = TRIM(REPLACE(`post_title`, 'A', ' A'))
WHERE `post_title` REGEXP BINARY '[^ ][A]';



  1. SQL-sætning for at få alle kunder uden ordrer

  2. Vælg og send mail fra min database

  3. Opret forbindelse til MySQL med JDBC over netværk

  4. Behøver kun at vælge data, der indeholder omvendte skråstreg i MySQL