@Dmax99

Как обьеденить три запроса в БД?

Здравствуйте ребята!
Столкнулся с проблемой. Запросы в бд есть а как сделать одним файлом, не понимаю...

Первый запрос.
Если product_id имеет только один option_id равен 10063 и не имеет 10101 то записать в бд TEXT-1
$this->db->query("UPDATE " . DB_PREFIX . "product SET oct_stickers = IF(product_id IN (SELECT product_id FROM " . DB_PREFIX . "ocfilter_option_value_to_product WHERE option_id IN ('10063', '') GROUP BY product_id HAVING COUNT(*) = 1), 'TEXT-1', '')");


Второй запрос.
Если product_id имеет только один option_id равен 10101 и не имеет 10063 то записать в бд TEXT-2
$this->db->query("UPDATE " . DB_PREFIX . "product SET oct_stickers = IF(product_id IN (SELECT product_id FROM " . DB_PREFIX . "ocfilter_option_value_to_product WHERE option_id IN ('10101', '') GROUP BY product_id HAVING COUNT(*) = 1), 'TEXT-2', '')");


Третий запрос.
Если product_id имеет строго два option_id - 10101 и 10063 то записать в бд TEXT-3
$this->db->query("UPDATE " . DB_PREFIX . "product SET oct_stickers = IF(product_id IN (SELECT product_id FROM " . DB_PREFIX . "ocfilter_option_value_to_product WHERE option_id IN ('10101', '10063') GROUP BY product_id HAVING COUNT(*) = 2), 'TEXT-3', '')");


Как это организовать, я просто не знаю, даже не знаю или возможно это сделать... Пытался искать примеры, но не зная что искать, невозможно найти...

Пытался запускать по отдельности, но не хватает условий, типа только один а не один из двух и т.д...
Может для кого-то это легко, помогите пожалуйста
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ответы на вопрос 1
@mletov
Конструкция CASE WHEN

UPDATE table
SET field = CASE
                          WHEN x=1
                          THEN 'Text1'
                        
                          WHEN x=2
                          THEN 'Text2'

                          ELSE ''
                  END
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы