SQL Update如果已经存在,则插入

时间:2012-01-20 07:00:36

标签: php mysql sql insert

我有以下sql语句:

$sql = "INSERT INTO jos_vm_product_details (variant_id, global_variant_id, 
                  code, size, details, color, top, price) 
        VALUES ('$variant_id', '$global_variant_id', '$code', '$size', 
                '$details', '$color', '$top', '$price')";

这只是一个基本的INSERT sql。如果'variant_id'已经存在,有没有办法让它更新记录。如果'variant_id'尚未存在,则应插入一个新的。

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:4)

$sql = "INSERT INTO jos_vm_product_details (variant_id, global_variant_id, 
                  code, size, details, color, top, price) 
        VALUES ('$variant_id', '$global_variant_id', '$code', '$size', 
                '$details', '$color', '$top', '$price')
        ON DUPLICATE KEY UPDATE
          global_variant_id = VALUES(global_variant_id),
          code = VALUES(code),
          size = VALUES(size),
          details = VALUES(details),
          color = VALUES(color),
          top = VALUES(top),
          price = VALUES(price)";

答案 2 :(得分:2)

在MySQL中,您可以使用ON DUPLICATE KEY

INSERT INTO jos_vm_product_details (variant_id, global_variant_id, 
                  code, size, details, color, top, price) 
        VALUES ('$variant_id', '$global_variant_id', '$code', '$size', 
                '$details', '$color', '$top', '$price')";

ON DUPLICATE KEY UPDATE `code`=VALUES(`code`);

在T-SQL(2008年更高版本)中,您可以使用MERGE