Задавайте вопросы, мы ответим
Вы не зашли.
Всем Добра!
Есть запрос
Отредактированно Bazz (13.04.2016 15:34:54)
Неактивен
Неактивен
vasya написал:
insert into oc_product_attribute (product_id, attribute_id, language_id, text)
SELECT product_id, if(attr_new=-1, 798, if(attr_new=-2), 797, 796), language_id, SUBSTRING_BY_INDEX(text, 'x', attr_new)
FROM oc_product_attribute, (SELECT -1 attr_new UNION SELECT -2 UNION SELECT -3) dummy
where `attribute_id` = 629
and `language_id` = 4
AND SUBSTRING_BY_INDEX(TEXT, 'x', attr_new) != '';
Ответ MySQL:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '), 797, 796), language_id, SUBSTRING_BY_INDEX(text, 'x', attr_new)
FROM oc_pro' at line 2
Неактивен
Тут такая фича что не все позиции имеют по 3 параметра, есть которые по 2. Т.е есть такие **х** и такие **х**х**
Неактивен
Bazz написал:
Ответ MySQL:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '), 797, 796), language_id, SUBSTRING_BY_INDEX(text, 'x', attr_new)
FROM oc_pro' at line 2
скобку не туда поставил
Неактивен
Bazz написал:
Тут такая фича что не все позиции имеют по 3 параметра, есть которые по 2. Т.е есть такие **х** и такие **х**х**
это вопрос к вашему select, чтобы он корректно их обрабатывал и выставлял правильные значения attr_new
в insert-е действует правило, что -1 это глубина, attribute_id = 798
-2 ширина attribute_id = 797;
-3 высота attribute_id = 796
Неактивен
vasya написал:
Bazz написал:
Тут такая фича что не все позиции имеют по 3 параметра, есть которые по 2. Т.е есть такие **х** и такие **х**х**
это вопрос к вашему select, чтобы он корректно их обрабатывал и выставлял правильные значения attr_new
в insert-е действует правило, что -1 это глубина, attribute_id = 798
-2 ширина attribute_id = 797;
-3 высота attribute_id = 796
Добавилось но без 798 id, хотя в attr_new он есть......
701 796 4 7.5
701 797 4 28.8
Неактивен
АА пордон перенеслась запись на другой лист, всё работает!
Неактивен
Неактивен
текст ошибки лучше всё-таки писать
в данном случае синтаксическая ошибка из-за того, что у if() должно быть 3 аргумента, а у вас только 2.
но в данном случае, так как у вас только один вариант равный -2 то if не нужен
вместо
if(attr_new=-2, 796)
пишите
796
Неактивен
Спасибо работает!
Неактивен
Возникла необходимость добавить условие из другой таблицы. Чтобы не у всех позиций менялось а только у вновь добавленных.
`oc_product`
product_id model sku upc ean jan isbn mpn location quantity stock_status_id image manufacturer_id shipping price points tax_class_id date_available weight weight_class_id length width height length_class_id subtract minimum sort_order status date_added date_modified
Отредактированно Bazz (27.04.2016 13:37:29)
Неактивен
where `attribute_id` in (130,148) and product_id in (SELECT product_id FROM `oc_product` where `date_added` like '%2016-04-27%')
Неактивен
Спасибо!
Неактивен