mysql_query重复密钥更新
我有问题,我想做更新时散列相同。 散列是独特在桌上。我无法找到正确的方法来做到这一点。mysql_query重复密钥更新
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());
这是您的查询:
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
ON DUPLICATE KEY UPDATE mini_products = mini_products +'“。$ row ['mini_products']。“'”)或死(mysql_error());当我尝试添加它们时,数据库只显示0的结果。 – 2014-09-05 11:18:31
你对'hash'有唯一的索引/约束吗? – 2014-09-05 11:54:24
是的,我确实有。 – 2014-09-05 12:10:26
当我尝试添加新的$行['mini_products ']到散列匹配时旧$ row ['mini_products']的后面。我不知道如何更新数据库。我只是用它来添加新的来替换旧的数据,但我想让它们加在一起。如果这是PHP(它看起来像),mysql_query已被弃用http://php.net/(')'或'die(mysql_error()); – 2014-09-05 11:13:24
manual/en/function.mysql-query.php – Jaydee 2014-09-05 12:00:46
是啊,它的PHP,我试图搜索正确的方式来做到这一点 – 2014-09-05 12:09:36