SQL REPLACE/как обновлять не все данные в строке/

У меня есть таблица со следующими столбцами:

order, host, host_price, domain, domain_price.

Я использую replace для обновления только строк для домена и domain_price, а не для всех строк.

Я использую это для хоста:

mysql_query("REPLACE INTO sr_orders_rel (order_id, host, host_price) VALUES ('$order_id', '$host', '$host_price')") or die (mysql_error());

и для домена:

mysql_query("REPLACE INTO sr_orders_rel (order_id, domain, domain_price) VALUES ('$order_id', '$domain', '$domain_price')") or die (mysql_error());

Моя проблема заключается в том, что при первом добавлении хоста записывается только порядок, хост и хост_цены, но когда пользователь хочет добавить и домен, не добавляйте только порядок строк, домен и domain_price, но обновляйте строки с пустой строкой.

1 ответ

Я думаю, вы хотите insert... on duplicate key update insert... on duplicate key update insert... on duplicate key update:

INSERT INTO sr_orders_rel(order_id, host, host_price)
 VALUES ('$order_id', '$host', '$host_price')
 on duplicate key update host = values(host), host_price = values(host_price);

Это сохранит предыдущие значения в строке.

licensed under cc by-sa 3.0 with attribution.