Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите переделать запрос select tot insert 
:(
    Опции темы
Bazz
  Дата 13.4.2016, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 13.4.2016

Репутация: нет
Всего: нет



Всем Добра!

Есть запрос
Код

SELECT product_id, attribute_id, language_id, attr_new, SUBSTRING_BY_INDEX(text, 'x', attr_new) attr
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) != ''



Запрос выполняется как надо(смприложеный файл)

Создана функция

Код

DELIMITER //

CREATE FUNCTION SUBSTRING_BY_INDEX(Source VARCHAR(255), Delimiter VARCHAR(255), Number INT)
RETURNS VARCHAR(255)
DETERMINISTIC
NO SQL
BEGIN
    IF ((LENGTH(Source) - LENGTH(REPLACE(Source, Delimiter, ''))) / LENGTH(Delimiter) >= ABS(Number) - 1) 
        AND (Number != 0)
    THEN
        RETURN TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(Source, Delimiter, Number), Delimiter, -SIGN(Number)));
    ELSE
        RETURN '';
    END IF;
END;
//

DELIMITER ;



Что он делает. Перваначально таблица выглядит так
product_id    attribute_id    language_id    text
701    629    4    7.5 x 28.8 x 51 см

селекст разбивает так как указано на скрине.

Вообщем нужно из этого селекта сделать Insert на добавление атрибутов с характеристиками в таблицу oc_product_attribute. Каждый параметр 7.5 x 28.8 x 51 см должен добавлятся к тому product_id к которому он прикреплён, меняется только attribute_id, а они такие
796        Высота
797        Ширина
798        Глубина

И в итоге должно получится так

product_id    attribute_id    language_id    text
701    796    4    7.5 см
701    797    4    28.8 см
701    798    4    51 см

Сам селект разбивает верно, как переделать на insert не знаю...


Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  55mF5.jpg 15,16 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0750 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.