【问题标题】:Update a row based on another row根据另一行更新一行
【发布时间】:2020-04-17 15:12:54
【问题描述】:

我正在处理我的 wordpress 数据库,我想更新我的表 wp_postmeta 并将所有 _order_tax 字段设置为从 _order_total 计算,并使用以下公式:

_order_tax = 0.2 * _order_total

这是我的数据库的快照(关注两个有趣的行):

我想对meta_key = _order_total 所在的每一行进行此更新,但我不知道如何编写新值应基于_order_total来自同一post_id

比如我想写(符号语言不是sql):

其中post_id1834 然后更新包含行的meta_value _order_taxmeta_key 列中,meta_value*0.2 的行包含 _order_totalmeta_key 中,post_id 与我要更新的行相同。

我希望我的问题很清楚。

感谢您的帮助

【问题讨论】:

    标签: mysql sql database wordpress phpmyadmin


    【解决方案1】:

    您可以使用UPDATE ... JOIN ... SET ... WHERE ... 语法如下:

    UPDATE wp_postmeta w1
    INNER JOIN wp_postmeta w2 
        ON  w2.post_id = w1.post_id 
        AND w2.meta_key = '_order_total' 
    SET w1.meta_value = w2.meta_value * 0.2
    WHERE w1.meta_key = '_order_tax'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多