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

SQL запрос для перевода производителей


Etegro

Recommended Posts

Нужно скопировать названия производителей с языка id 1 в язык с id 2. Переводить там руками нечего, а брендов много. Может кто-то помочь с составлением SQL-запроса?

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


CREATE TEMPORARY TABLE temp_table_manufacturer
AS
SELECT * FROM oc_manufacturer_description WHERE `language_id` = "1";
UPDATE temp_table_manufacturer SET `language_id` = "2" WHERE `language_id` = "1";
INSERT INTO oc_manufacturer_description SELECT * FROM temp_table_manufacturer;
DROP TEMPORARY TABLE temp_table_manufacturer;
ALTER TABLE `oc_manufacturer_description`

примерно так, первое что придумалось)

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

22 минуты назад, PaulKravchenko сказал:

CREATE TEMPORARY TABLE temp_table_manufacturer
AS
SELECT * FROM oc_manufacturer_description WHERE `language_id` = "1";
UPDATE temp_table_manufacturer SET `language_id` = "2" WHERE `language_id` = "1";
INSERT INTO oc_manufacturer_description SELECT * FROM temp_table_manufacturer;
DROP TEMPORARY TABLE temp_table_manufacturer;
ALTER TABLE `oc_manufacturer_description`

примерно так, первое что придумалось)

id у меня все-таки 3 оказался у принимающего языка, потому заменил 2 на 3. В итоге ошибка:

Без названия.png

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


Если записи уже есть

UPDATE manufacturer_description md1
JOIN anufacturer_description md2 ON md1.manufacturer_id = md2.manufacturer_id AND  md2.language_id = С какого
SET
md1.name = md2.name
WHERE md1.language_id = На какой AND md1.name <> ''

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

2 минуты назад, Otvet сказал:

Убрать вообще бред с выборкой имени производителя из таблицы oc_manufacturer_description и брать из oc_manufacturer, как изначально в opencart и сделано

Обрезать в запросе _description везде ?

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


4 минуты назад, Otvet сказал:

Убрать вообще бред с выборкой имени производителя из таблицы oc_manufacturer_description и брать из oc_manufacturer, как изначально в opencart и сделано

А вот это самое правильное предложение.

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

5 минут назад, chukcha сказал:

Если записи уже есть

UPDATE manufacturer_description md1
JOIN anufacturer_description md2 ON md1.manufacturer_id = md2.manufacturer_id AND  md2.language_id = С какого
SET
md1.name = md2.name
WHERE md1.language_id = На какой AND md1.name <> ''

UPDATE oc_manufacturer_description md1
JOIN oc_manufacturer_description md2 ON md1.manufacturer_id = md2.manufacturer_id AND md2.language_id = 1
SET
md1.name = md2.name
WHERE md1.language_id = 3 AND md1.name <> ''

 

Затронута 1 строка и ничего не перевело. Или я криво поправил Ваш вариант?

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


33 минуты назад, Etegro сказал:

Разумеется, снимал, результат тот же(

Ну на скрине выше она стоит, проверил у себя, работает.

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

UPDATE oc_manufacturer_description md1
JOIN oc_manufacturer_description md2 ON md1.manufacturer_id = md2.manufacturer_id AND  md2.language_id = 1
SET
md1.name = md2.name
WHERE md1.language_id =2 AND md1.name <> ''

Волне работающий запрос

Можно убрать  проверку на заполненность name

 

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

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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