我有问题,我想在哈希相同时进行更新。表格中哈希 唯一。我找不到正确的方法来做到这一点。
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());
答案 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