我有一个文本文件,其中包含例如公司名称、产品和价格。数据库中大约有200条记录,文本文件中的记录略多一点。现在,我想通过一个sql查询将所有价格更新到db。我已经尝试过了:
for($i = $start_row; $i < $stop_row; $i += 3)
...
$prices = array($price1, $price2, price3);
$pricesfloat = array_map('floatval', $prices);
...
$query = "UPDATE test3 SET price1 = $pricesfloat[0], price2 = $pricesfloat[1], price3 = $pricesfloat[2] WHERE company = '$company' AND product = '$product'";
mysql_query($query, $connection) or die(mysql_error());mysql_affected_rows()返回0行。我可以使用insert INTO将所有值插入到db中,但在这种情况下,我必须更新现有值并在以后添加缺少的值。谁能帮帮忙?:)
发布于 2012-06-20 15:12:30
INSERT ... ON DUPLICATE KEY UPDATE、http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html可能适合您的情况:
INSERT INTO table (product_id, price) VALUES (1, 1.323),(2, 3434) ... (200, 2.333) ON DUPLICATE KEY UPDATE price = VALUES(price)批量更新的另一种方式是:
UPDATE table
INNER JOIN (
(SELECT 'company1' AS company, 'product1' AS product, 'price1' AS price
UNION ALL SELECT 'company2', 'product2', 'price2'
....
UNION ALL SELECT 'companyN', 'productN', 'priceN') AS tmp
) USING (company, product)
SET table.price = tmp.pricehttps://stackoverflow.com/questions/11114339
复制相似问题