@ART4

Как сделать запрос чтоб не дублировался?

Добрый день друзья, подскажите пожалуйста, дела. запросы в базу и столкнулся с проблемой.
Парсинг парсит товары, если 1 раз запустить, то он спарсит отлично всё, но когда нажму ещё раз, но он дублирует товары.
Не знаю как соединить 2 запроса в один ключ ID. Стоит генерация SELECT MAX(product_id)
Имею запросы 2, один без другого не выводит.

Первый сам товар:
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 `url` = 
(SELECT MAX(product_id) FROM s_lang_products),
 `name` = '%Название%',
 `brand_id` = '0',
 `meta_title` = '%Название%',
 `meta_keywords` = '%Название%',
 `meta_description` = '%Название%';

Где вроде стоит ON DUPLICATE KEY UPDATE `url`

Второй запрос:
REPLACE INTO s_lang_products (lang_id, product_id, name, meta_title, meta_keywords, meta_description) 
SELECT 1, id, name, meta_title, meta_keywords, meta_description
FROM s_products;


Помогите решить, уже месяц мусолю.........
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 1
Amfitorin
@Amfitorin
Программист
Добрый день. Если я правильно понял, то у вас в s_product ключем является url + name, а т.к. url всегда генерируется, независимо от name, а просто максимальное значение product_id в s_product_lang, то ключ никогда не будет дубликатом. Теоретически name + meta_title могут быть ключем, но определить можно, только точнее узнав структуру вашей базы
Ответ написан
Ваш ответ на вопрос

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

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