Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Аналог функции ВПР в PhpMyAdmin


Recommended Posts

Добрый день!

 

Подскажите пожалуйста, есть ли аналог функции ВПР в phpmyadmin?

 

Суть проблемы:

 

Есть экселевский файлик с фактической стоимостью доставки

В файле есть 2 столбца:

order_id и shipping_cost

 

Есть таблица mysql называемая order

В этой таблице есть множество столбцов, а также столбец shipping_cost

Также в этой таблице есть order_id (которые соответствуют order_id в экселевском файле)

 

 

Каким образом можно подставить значения shipping_cost из экселевского файла в файл Order в соответствующие места?

 

 

Спасибо огромное заранее!

Надіслати
Поділитися на інших сайтах


Есть экселевский файлик с фактической стоимостью доставки

В файле есть 2 столбца:

order_id и shipping_cost

 

Есть таблица mysql называемая order

В этой таблице есть множество столбцов, а также столбец shipping_cost

Также в этой таблице есть order_id (которые соответствуют order_id в экселевском файле)

 

Каким образом можно подставить значения shipping_cost из экселевского файла в файл Order в соответствующие места?

Можно создавать временную таблицу, грузить в неё CSV чем-то вроде

`LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ';'`

а потом как-то так:

`UPDATE 'order' o SET o.shipping_cost = (SELECT shipping_cost FROM tmp WHERE tmp.order_id = o.order_id)`

Можно скрипт написать с одним циклом - чтобы читал по одной строке из файла и делал кучу запросов по обновлению.

Можно просто выгрузить из экселя в CSV и массовой заменой подготовить файл с тучей запросов, которые будут одним запросом обновлять штук 50 записей за раз. Вроде должно получиться. И потом просто скопипастить в окно SQL-запросов. Типа было

1; 123

2; 125.34

3; 0

4; 50.00

...

стало

UPDATE `order` SET `shipping_cost` = CASE `order_id`

WHEN 1 THEN 123

WHEN 2 THEN 125.34

WHEN 3 THEN 0

WHEN 4 THEN 50.00

ELSE `shipping_cost` END

Кто неосилятор скриптов на баше, седе, авк, перле - осилит макросами в микрософт продуктах или даже просто колонок добавит в эксель со словами WHEN и THEN, а потом просто выгрузить в текстовый файл и добавить по паре строк в порции (можно и на глазок, по паре экранов).

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

Ну или на первом.

Надіслати
Поділитися на інших сайтах


Можно создавать временную таблицу, грузить в неё CSV чем-то вроде

`LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ';'`

а потом как-то так:

`UPDATE 'order' o SET o.shipping_cost = (SELECT shipping_cost FROM tmp WHERE tmp.order_id = o.order_id)`

Можно скрипт написать с одним циклом - чтобы читал по одной строке из файла и делал кучу запросов по обновлению.

Можно просто выгрузить из экселя в CSV и массовой заменой подготовить файл с тучей запросов, которые будут одним запросом обновлять штук 50 записей за раз. Вроде должно получиться. И потом просто скопипастить в окно SQL-запросов. Типа было

1; 123

2; 125.34

3; 0

4; 50.00

...

стало

UPDATE `order` SET `shipping_cost` = CASE `order_id`

WHEN 1 THEN 123

WHEN 2 THEN 125.34

WHEN 3 THEN 0

WHEN 4 THEN 50.00

ELSE `shipping_cost` END

Кто неосилятор скриптов на баше, седе, авк, перле - осилит макросами в микрософт продуктах или даже просто колонок добавит в эксель со словами WHEN и THEN, а потом просто выгрузить в текстовый файл и добавить по паре строк в порции (можно и на глазок, по паре экранов).

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

Ну или на первом.

Огромное спасибо! Попробую вечером :) Хороших Выходных!!!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.