更新:问题已解答,请参阅Magento Catalog Search Query Constraint Error了解我的后续问题。
在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中理解这种TYPE查询。我根本不明白INSERT语句如何与DUPLICATE KEY UPDATE一起使用。有人能提供一些实际的解释吗?谢谢!
答案 0 :(得分:0)
如果MySQL发现query_id
的密钥product_id
和catalogsearch_result
与MySQL引擎更新值relevance = VALUES('relevance');
重复,而不是插入