Обновление SQL, если оно уже существует, еще вставить - PullRequest
2 голосов
/ 20 января 2012

У меня есть следующий 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.Есть ли способ обновить запись, если вариант_идентификатора уже присутствует.Если 'option_id' еще нет, следует вставить новый.

Любая помощь будет оценена

Ответы [ 3 ]

4 голосов
/ 20 января 2012
$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)";
4 голосов
/ 20 января 2012

Вы можете проверить INSERT ... ON DUPLICATE KEY UPDATE

2 голосов
/ 20 января 2012

В 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...