2015-04-29 2 views
0

Я пытаюсь вставить некоторые данные в таблицу mysql. У меня есть опция в opencart с option_id = 6, я хочу вставить во все продукты, содержащие option_id = 6, новую опцию с option_id = 9.Вставить на основе условий

insert into oc_product_option (`option_id`) 
select 9 
where (SELECT `option_id` FROM oc_product_option WHERE `option_id` == 6); 

не работает. как мы можем дать условие, которое делает это в opencart?

EDIT: Вот еще информация. У меня есть один вариант Color 1, который уже назначен тысячам продуктов. Я пытаюсь назначить цвет 2 для всех продуктов, содержащих цвет 1.

  1. Color1- вариант ID = 6
  2. color2- вариант ID = 9

В OpenCart, таблицы MySQL БД oc_product_option и oc_product_option_value.

в oc_product_option мы поля PRODUCT_ID, product_option_id (авто пошаговой нет необходимости обновлять), option_id

Так что я делаю, выбор опции идентификатора цвета 2 -9 и присвоение продуктов с опцией ид = 6

+0

если вы просто вставить один столбец, то почему вам нужно выбрать? Предоставьте дополнительную информацию о том, что именно вы пытаетесь использовать с некоторыми образцами данных. –

+0

Добавлены некоторые подробности. Спасибо –

+0

проверить мой ответ – Alex

ответ

3

Если я правильно ваш запрос должен быть как:

INSERT INTO oc_product_option (`product_id`,`option_id`) 
SELECT product_id,9 
FROM oc_product_option 
WHERE `option_id` = 6; 
+0

О, это сработало отлично. я делаю то же самое в таблице product_option_value, чтобы назначать значения опций для продуктов, имеющих эту опцию? Может, так? : INSERT INTO oc_product_option_value ('product_id','option_id','option_value_id') SELECT product_id,9,option_value_id FROM option_value_id WHERE 'option_id' = 6;

+0

не уверен. Какова ваша структура таблиц 'oc_product_option_value'? не должно быть 'product_id' – Alex

+0

, есть product_option_value_id, который является инкрементным, идентификатор опции продукта, идентификатор продукта, идентификатор опции и id значения параметра. –