【问题标题】:SQL REPLACE /how to update not all data in the row/SQL REPLACE /如何不更新行中的所有数据/
【发布时间】:2014-02-17 13:48:46
【问题描述】:

我有一个包含以下列的表格:

order, host, host_price, domain, domain_price.

我使用 replace 仅更新 domain 和 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());

我的问题是,当第一次添加主机时只写订单、主机和主机价格,但是当用户想要添加和域名时,不要只添加行订单、域名和域名价格,而是用空字符串更新主机行。

【问题讨论】:

  • 我的想法是一个订单只有一个主机和一个域。

标签: php sql forms replace


【解决方案1】:

我想你想要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);

这将保留行中的先前值。

【讨论】:

  • 它工作得很好,正是我正在寻找的。非常感谢戈登!
猜你喜欢
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 1970-01-01
相关资源
最近更新 更多