Здравствуйте.
Чего-то не соображу, помогите пожалуйста.
При парсинге из 1С заношу товары во временную таблицу, выбирая определённый склад.
Структура временной таблицы
CREATE TABLE `import_items` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер записи',
`item_id` varchar(11) NOT NULL COMMENT 'Ид товара сайта',
`item_id_1c` varchar(255) NOT NULL COMMENT 'Ид товара 1С',
`cat_id_1c` varchar(255) NOT NULL COMMENT 'Ид категории 1С',
`name` varchar(255) NOT NULL COMMENT 'Имя объекта',
`price` varchar(25) DEFAULT NULL COMMENT 'Цена оптовая',
`price1` varchar(25) DEFAULT NULL COMMENT 'Цена 1 дилера',
`price2` varchar(25) DEFAULT NULL COMMENT 'Цена 2 дилера',
`price3` varchar(25) DEFAULT NULL COMMENT 'Цена 3 дилера',
`price4` varchar(25) DEFAULT NULL COMMENT 'Цена 4 дилера',
`avail_1c` varchar(255) NOT NULL COMMENT 'Статус',
`quantity` varchar(25) NOT NULL COMMENT 'Количество',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1215 DEFAULT CHARSET=utf8 COMMENT='Объекты для записи каталога из 1С'
Всё ок. Код отрабатывает, данные вставляются.
Теперь из временной таблицы нужно перенести в склады.
Структура таблицы складов
При вставке в `store` мы одним запросом хотим вставить всё напарсенное из временной таблицы, т.е. например поле store=1
Как сделать запрос: если в таблице `store` уже есть значение поля store=1 и item_id совпадает с временной таблицей, то обновить значения, иначе — вставить новое?
Немного сумбуно написал. Иными словами, для примера.
Если в таблице store имеется строка с item_id=1237 и store=1, то UPDATE, если нет — INSERT.
Чего-то торможу, голову сломал уже.
Помогите, пожалуйста. Готов заплатить за помощь.
02.01.2017, 18:11
Degradator
Точно не уверен, но кажется вот так
INSERT INTO table (id,item, price) VALUES (1,"boots", 10),(2, "pants", 20) ON DUPLICATE KEY UPDATE item=VALUES(item), price=VALUES(price)