mysql_query ON DUPLICATE KEY UPDATE

时间:2014-09-05 10:54:31

标签: mysql on-duplicate-key

我有问题,我想在哈希相同时进行更新。表格中哈希 唯一。我找不到正确的方法来做到这一点。

mysql_query("INSERT INTO shop_product_search3_muokattu2 
            (id, hash, product_name, type, manufacturer, mini_products) VALUES
            (NULL, '".$hash."', '".$row['product_name']."', '".$row['type']."', '". $row['manufacturer']."', '".$row['mini_products']."') 
            ON DUPLICATE KEY 
               UPDATE mini_products += VALUES('".$mini_products."') ") 
            or die(mysql_error());

1 个答案:

答案 0 :(得分:1)

这是您的查询:

INSERT INTO shop_product_search3_muokattu2(id, hash, product_name, type, manufacturer, mini_products) 
    VALUES (NULL, '".$hash."', '".$row['product_name']."', '".$row['type']."', '". $row['manufacturer']."', '".$row['mini_products']."') 
    ON DUPLICATE KEY UPDATE mini_products += VALUES('".$mini_products."'

我相信您对on duplicate key update声明有疑问。 VALUES的参数应该是列名。或者,您可以直接输入值。因此,以下任何一项都应该有效:

    ON DUPLICATE KEY UPDATE mini_products += VALUES(mini_products)
    ON DUPLICATE KEY UPDATE mini_products += $mini_products

作为注释:我假设+=有效,但我会将其写为:

    ON DUPLICATE KEY UPDATE mini_products = coalesce(mini_products, 0) + VALUES(mini_products)
    ON DUPLICATE KEY UPDATE mini_products = coalesce(mini_products, 0) + $mini_products