Wpis z mikrobloga

Mam coś takiego w mysql:

ps_address (id_address, id_country, id_state, id_customer, id_manufacturer, id_supplier, id_warehouse, alias, company, lastname, firstname, address1, address2, postcode, city, other, phone, phone_mobile, vat_number, dni, date_add, date_upd, active, deleted) VALUES

I kolumnach phone, phone_mobile mam jakieś śmieci typu spacje +48 +0059 00 itd. Chciałem zrobić z tym syfem porządek aby było tylko 9 znaków numeru telefonu i usunąć zbędne znaki.

Wyciągnąłem sobie za pomocą phpmyadmin
ps_address (id_address, phone, phone_mobile) VALUES

i ładnie poprawiłem w notepad++ to co chciałem

Teraz pytanie jak wgrać to do bazy danych aby nie popierdzielić czy też nie usunąć/zamienić na null wcześniejszych kolumn?

#mysql #pytanie #pytaniedoeksperta #programista15k
  • 9
@airflame: Wygląda na to, że chcesz zaktualizować istniejące rekordy w tabeli psaddress, konkretnie kolumny phone i phonemobile, aby usunąć niepotrzebne znaki i pozostawić tylko 9 cyfr. Możesz to zrobić za pomocą zapytania SQL. Poniżej znajduje się ogólna struktura takiego zapytania:

sql

UPDATE psaddress
SET phone = <nowa
wartoscphone>,
phone
mobile = <nowawartoscphonemobile>
WHERE <warunek
filtrujacy>;

Gdzie:

<nowawartoscphone> to nowa wartość dla kolumny
@airflame: Jeśli masz czas: pobaw się danymi w excelu i zrób tak, żeby id było na końcu. Wtedy w notepad++ będziesz mógł przelecieć zamianą z wyrażeniami regularnymi i powstawiać polecenia mysql do kolejnych linii, na początku update, potem set nazwapola1 = $1, nazwapola2 = $2 where idadress = $3.
Jeśli masz dostęp do php, to file_get_contents, foreach, explode i na żywca odpalasz zapytania.
  • 0
@opk20: Dziękuje za info zobaczę na testowej bazie.

@PawMad Czyli najlepiej jak bym sobie to w exela wkleił i potem w notepad++ dodał przed i za i zrobił np:

UPDATE ps_address SET phone='885444555' AND phone_mobile='' WHERE id_address=1
UPDATE ps_address SET phone='444555888' AND phone_mobile='' WHERE id_address=2
UPDATE ps_address SET phone='333444555' AND phone_mobile='' WHERE id_address=3

itd?