Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak połączyć regex + UPDATE w MySQL, aby dodać spację do FirstnameLastname?

Po pierwsze, dopasowywanie wzorców przy użyciu REGEXP nie uwzględnia wielkości liter. Musisz więc użyć BINARY.

Nie jestem pewien, czy istnieje lepszy sposób na zrobienie tego w MySQL, ale to jest jeden. Uruchom następujące zapytania dla każdego alfabetu od A do Z. Podałem zapytania dla A, B, C, D, E, Y i Z. Skopiuj dla wszystkich innych alfabetów. Gdy skończysz je wszystkie, będziesz mieć spację między imieniem i nazwiskiem

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

Zwróć uwagę na użycie BINARY w powyższych przykładach zapytań.

Innym sposobem może być napisanie skryptu PHP, który odczyta wszystkie post_title a następnie użyj potężnych funkcji wyrażeń regularnych PHP, aby dodać spacje i zaktualizować je z powrotem w bazie danych.

Mam nadzieję, że to pomoże!

EDYTUJ :Oh! Zapomniałem, że w bazie są też wpisy ze spacjami i trzeba je zignorować. Zamiast tego użyj tego zapytania:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jboss mysql - Nie znaleziono odpowiedniego sterownika dla jdbc

  2. Baza danych:czy mogę mieć atrybuty dopuszczające wartość null w trzeciej bazie danych o normalnym formularzu?

  3. Sprawdź, czy adres IP jest w podsieci

  4. Jak utworzyć wyjście dwóch kolumn z jednej kolumny?

  5. C# z parametrami INSERT MySQL