sql >> Databáze >  >> RDS >> Mysql

Jak zkombinovat regex + UPDATE v MySQL a přidat mezeru do JménoPříjmení

Za prvé, porovnávání vzorů pomocí REGEXP nerozlišuje velká a malá písmena. Takže musíte použít BINARY.

Nejsem si jistý, jestli existuje lepší způsob, jak to udělat v MySQL, ale toto je jeden. Spusťte následující dotazy pro každou abecedu od A do Z. Zadal jsem dotazy pro A, B, C, D, E, Y a Z. Zkopírujte prosím pro všechny ostatní abecedy. Jakmile je všechny dokončíte, budete mít mezeru mezi jménem a příjmením

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

Všimněte si prosím použití BINARY ve výše uvedených příkladech dotazů.

Dalším způsobem může být napsat PHP skript pro čtení všech post_title a poté pomocí výkonných funkcí PHP regulárních výrazů přidat mezery a aktualizovat je zpět do databáze.

Doufám, že to pomůže!

UPRAVIT :Ach! Zapomněl jsem, že databáze má také položky s mezerami a je třeba je ignorovat. Místo toho použijte tento dotaz:

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



  1. Získat nejbližší zeměpisnou délku a šířku z databázové tabulky MSSQL?

  2. DataSourceInitializer nefunguje na Spring boot 1.2

  3. Přírůstková replikace dat v IRI Workbench

  4. Hlavní použití sys.dm_os_wait_stats