2014-09-09 3 views
0

ОБНОВЛЕНИЕ: Ответ на вопрос, см. Magento Catalog Search Query Constraint Error для моего последующего вопроса.Magento Каталог Поиск Запрос Пояснение

Я получаю ошибки ограничения внешнего ключа при выполнении определенных поисков в каталоге Magento. Вот запрос, что причина того, что:

INSERT INTO `catalogsearch_result` 
(
    SELECT 
     '0', 
     `s`.`product_id`, 
     -(
      (MATCH(`s`.`data_index`) AGAINST ('ip335')) + 
      (5 * (MATCH(`s`.`data_index_1`) AGAINST('ip335'))) + 
      (3 * (MATCH(`s`.`data_index_2`) AGAINST('ip335'))) + 
      (2 * (MATCH(`s`.`data_index_3`) AGAINST ('ip335'))) 
     ) 

    FROM `mikkelrickycatalogsearch_fulltext` AS `s` 

    INNER JOIN `catalog_product_entity` AS `e` 
     ON `e`.`entity_id`=`s`.`product_id` 

    WHERE 
     (
      (`s`.`data_index` LIKE '%ip335%') 
     ) 
     AND `s`.`store_id`='2' 
) 
ON DUPLICATE 
    KEY UPDATE `relevance` = VALUES(`relevance`); 

Мы используем расширение MikkelRicky_CatalogSearch, но даже основной код поиска производит аналогичный запрос (INSERT/ON DUPLICATE KEY).

Я пытаюсь понять этот ТИП запроса в SQL. Я просто не понимаю, как работают инструкции INSERT с DUPLICATE KEY UPDATE. Может ли кто-нибудь дать некоторые практические объяснения? Благодаря!

+0

, если MySQL видит, что ключи 'query_id' и' 'product_id' из catalogsearch_result' дублируют, чем обновления антивирусных ядер MySQL value 'релевантность = VALUES ('релевантность');' вместо вставки – P0ZiTR0N

+0

Отлично, это имеет смысл. Спасибо @ P0ZiTR0N. Пожалуйста, опубликуйте это как ответ, чтобы я мог дать вам кредит. Теперь я могу задать следующий вопрос (см. Мое редактирование) об ошибке ограничения. –

ответ

0

, если MySQL видит, что ключи query_id и product_id из catalogsearch_result дублируют, чем MySQL обновлений двигателя значение relevance = VALUES('relevance'); вместо вставки