/ / Usuń wszystkie znaki specjalne z kolumny w MySQL - mysql

Usuń wszystkie znaki specjalne z kolumny w MySQL - mysql

Pracuję nad MySQL i mając kolumnę phone-number. I próbuje użyć wyrażenia regularnego do tego i nie powiedzie się.

Jak mogę usunąć wszystkie znaki specjalne z tej kolumny?

phone-number
"8-903-400-65-38"
"+79265682388"
"8.10492E+15"
"8-913-469-38-35"
"+79882856253"
"+79110987703"
"+7 (495) 989-21-16"
"8142 77-55-51"
"+79378299427"

Czy ktoś może mi pomóc w tej kwestii? Nie chcę stracić tej listy numerów kontaktowych.

Z góry dziękuję

Odpowiedzi:

0 dla odpowiedzi № 1

Potwierdzoną odpowiedzią jest tutaj połączenie szeregu wywołań do MySQL REPLACE funkcjonować:

SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(phone-number, "-", ""), "+", ""), ".", ""), "(", ""), ")", ""), " ", "")

Spowoduje to usunięcie następujących znaków z phone-number kolumna:

- + . ( ) and space

Ładniejszym rozwiązaniem byłoby użycie wyrażenia regularnego do zastąpienia, ale niestety MySQL nie obsługuje żadnej takiej wbudowanej obsługi zastępowania wyrażenia regularnego.

Jeśli nie chcesz mieć fugly REPLACE łańcuch, to ty mógłby napisz dynamiczny kod MySQL, który iteruje nad zestawem znaków, które zdefiniujesz, i wykonaj kilka aktualizacji tabeli. Oto, jak wyglądałaby taka aktualizacja:

UPDATE yourTable
SET phone-number = REPLACE(phone-number, "+", "")

Możesz wykonać jedną aktualizację dla każdej postaci i postępować w ten sposób.