- Автор темы
- #1
Добрый день друзья, помогите решить задачку.
Имею таблицу, где
ID AUTO_INCREMENT
Что нужно вставить в код где id=id <- вот сюда значение
Чтоб если только по названию искало и заменяло или добавляло в базе? Череп сейчас лопнет, не могу вкурить.
Таблица:
Сам запрос
не силён в mysql, но какие поля не сравнивал, если данные одинаковые и нету ID, то всегда новое. А если принудительно сделать id определённой цифрой, то тогда заменяет информацию товара этого, либо ничего не делает если одинакого.
Вот такое кидал, нету id, всегда новое, как id принудительно сделаю цифрой то работает всё.
Имею таблицу, где
ID AUTO_INCREMENT
Что нужно вставить в код где id=id <- вот сюда значение
Чтоб если только по названию искало и заменяло или добавляло в базе? Череп сейчас лопнет, не могу вкурить.
Таблица:
Код:
CREATE TABLE `s_products` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(255) NOT NULL DEFAULT '',
`brand_id` int(11) DEFAULT NULL,
`name` varchar(500) NOT NULL,
`annotation` text NOT NULL,
`body` longtext NOT NULL,
`visible` tinyint(1) NOT NULL DEFAULT '1',
`position` int(11) NOT NULL DEFAULT '0',
`meta_title` varchar(500) NOT NULL,
`meta_keywords` varchar(500) NOT NULL,
`meta_description` varchar(500) NOT NULL,
`created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`featured` tinyint(1) DEFAULT NULL,
`external_id` varchar(36) NOT NULL,
`rating` float(3,1) DEFAULT '0.0',
`votes` int(11) DEFAULT '0',
`special` varchar(255) DEFAULT NULL,
`last_modify` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `url` (`url`),
KEY `brand_id` (`brand_id`),
KEY `visible` (`visible`),
KEY `position` (`position`),
KEY `external_id` (`external_id`),
KEY `hit` (`featured`),
KEY `name` (`name`(333)),
KEY `name_2` (`name`(333))
) ENGINE=MyISAM AUTO_INCREMENT=370 DEFAULT CHARSET=utf8
Сам запрос
Код:
INSERT INTO s_products SET id=id, name="%Название%" ON DUPLICATE KEY UPDATE name=VALUES(`name`);
не силён в mysql, но какие поля не сравнивал, если данные одинаковые и нету ID, то всегда новое. А если принудительно сделать id определённой цифрой, то тогда заменяет информацию товара этого, либо ничего не делает если одинакого.
Вот такое кидал, нету id, всегда новое, как id принудительно сделаю цифрой то работает всё.
Код:
INSERT INTO s_products (url,name,brand_id,meta_title,meta_keywords,meta_description) VALUES
((SELECT MAX(product_id) FROM s_lang_products),'%Название%','0','%Название%','%Название%','%Название%')
ON DUPLICATE KEY UPDATE name=VALUES(`name`);