如果不存在则插入正确的语法;如果存在SQL,则更新

时间:2014-02-21 10:47:14

标签: php sql

我需要一个推动工作IF EXIST UPDATE别的,INSERT,下面是我更新数据库的函数:

function _updatePrices($data){
    $connection     = _getConnection('core_write');
    $sku            = $data[0];
    $price          = $data[1];
    $attribute_id   = '76';
    $websiteId      = $data[2];
    $productId      = _getIdFromSku($sku);

    $sql = "INSERT INTO " . _getTableName('catalog_product_entity_decimal') . "
            (entity_type_id, attribute_id, store_id, entity_id, value)
            VALUES (4, ".$attribute_id.", ".$websiteId.", ".$productId.", ".$price.")
            ON DUPLICATE KEY UPDATE 
            value = (".$price.")";
            "WHERE attribute_id = ".$attribute_id."
            AND entity_id = ".$productId."
            AND store_id = ".$websiteId."
            ";
    $connection->query($sql);
}

如何声明要插入的值?

2 个答案:

答案 0 :(得分:2)

您正在寻找on duplicate key UPDATE

更多信息: http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html

答案 1 :(得分:2)

正确的方法是:

INSERT INTO `table` (`columns here`) VALUES ('values here')
    ON DUPLICATE KEY UPDATE `column`=VALUES(`column`), `col2`=VALUES(`col2`)...