Разделение / извлечение из столбца необработанных данных в несколько столбцов на основе таблицы критериев MySql - PullRequest
0 голосов
/ 13 июля 2020

У меня есть 2 таблицы

1-я таблица адресов

Country State       city        ZIP code
India   Andhra      Vizag       535001
India   Andhra      Vijayawada  520001
India   Andhra      Tirupathi   530001
India   Karnataka   Bengalore   400120
India   Tamilnadu   Chennai     400001
USA     Newyork     Newyork     666601
USA     Newjersy    Newjersy    666501

и 2-я таблица клиентов

Customer    Raw_address                          City   state   Country ZIP code
X01         D No:123VizagAndhraIndia                    
X02         #46,XYZ streetBengaloreKarnataka                    
X03         #123 Dash Street Newjersy                   

теперь нужно обновить таблицу клиентов как

Customer    Raw_address                         City        state       Country ZIP code
X01         D No:123VizagAndhraIndia            Vizag       Andhra      India   535001
X02         #46,XYZ streetBengaloreKarnataka    Bengalore   Karnataka   India   400120
X03         #123 Dash Street Newjersy           Newjersy    Newjersy    USA     666501

Я дал SQL Код для создания таблицы и значений

CREATE TABLE `Address` (
    `country` VARCHAR(50),
    `State` VARCHAR(50),
    `City` VARCHAR(50),
    `Zip code` VARCHAR(6)
);

insert into Address(country, state,city,`zip code`)
values
('India','Andhra','Vizag',535001),
('India','Andhra','Vijayawada',520001),
('India','Andhra','Tirupathi',530001),
('India','Karnataka','Bengalore',400120),
('India','Tamilnadu','Chennai',400001),
('USA','Newyork','Newyork',666601),
('USA','Newjersy','Newjersy',666501);

CREATE TABLE `Customer` (
    `Customer` VARCHAR(8),
    `Raw_Address` VARCHAR(500),
    `City` VARCHAR(50),
    `State` VARCHAR(50),
    `Country` VARCHAR(50),
    `Zip code` VARCHAR(6)
);

insert into Customer (customer, raw_address)
values
('X01','D No:123VizagAndhraIndia'),
('X02','#46,XYZ streetBengaloreKarnataka'),
('X03','#123 Dash Street Newjersy');

Я пробовал присоединиться разными способами, но безуспешно.

1 Ответ

0 голосов
/ 14 июля 2020

Наконец я разобрался.

UPDATE customer c
JOIN address a ON c.Raw_Address LIKE CONCAT('%', a.city ,'%')
SET 
        c.city=a.City,
        c.state=a.State,
        c.Country=a.country, 
        c.`Zip code`=a.`Zip code` 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...