Перейти к содержанию

Рекомендуемые сообщения

Уважаемые форумчане, помогите пожалуйста с решением немного замысловатой задачи - необходимо в SQL прописать команду удаления опций при условии, что они содержат определенное значение.

Если по-простому, кострукция должна выглядеть так:

УДАЛИТЬ ИЗ `oc_product_option` ЗНАЧЕНИЕ `option_id` = `13` ЕСЛИ В ТАБЛИЦЕ `oc_product_option_value` ЗНАЧЕНИЕ `option_value_id` = `1239`

 

пробовал прописывать команду DELETE FROM с операторами условия CASE и WHEN - где-то допускаю ошибку, так как не работает.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DELETE FROM `oc_product_option`  WHERE option_id IN  (SELECT option_id FROM  oc_product_option_value  WHER option_value_id` = `1239`

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

из таблицы нельзя удалить значение. из таблицы можно удалить строку

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

плюс еще удалять и в product_option_value по product_id, чтобы мусора не было

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, AlexDW сказал:

плюс еще удалять и в product_option_value по product_id, чтобы мусора не было

 

да, тут Вы правы - там тоже нужно зачистить, задача усложняется 

 

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

DELETE FROM `oc_product_option`  WHERE option_id IN  (SELECT option_id FROM  oc_product_option_value  WHER option_value_id` = `1239`

пробовал такую конструкцию, не заработало (

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

пробуйте так

DELETE po, pov FROM `oc_product_option` po LEFT JOIN `oc_product_option_value` pov ON (po.option_id = pov.option_id) WHERE po.option_id = 13 AND pov.option_value_id = 1239;

 

только бэкап сначала сделайте!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, AlexDW сказал:

пробуйте так

 


DELETE po, pov FROM `oc_product_option` po LEFT JOIN `oc_product_option_value` pov ON (po.option_id = pov.option_id) WHERE po.option_id = 13 AND pov.option_value_id = 1239;

 

 

выдало ошибку http://prntscr.com/eh1rw9

 

Задачу решил немного заковыристым, но как оказалось результативным способом - через экспорт-импорт модуля CSV Price PRO

 

Спасибо всем большое за советы - надеюсь, они пригодятся в других возникающих задачах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.