繁体   English   中英

正确的语法(如果不存在则插入)或更新(如果存在)SQL

[英]Correct syntax to insert if not exist or update if exist 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);
}

如何声明要插入的值?

您正在寻找on duplicate key UPDATE

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

正确的方法是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM