代码之家  ›  专栏  ›  技术社区  ›  Matthew Rapati

mysql更新数学

  •  4
  • Matthew Rapati  · 技术社区  · 16 年前

    假设p.U价格等于1

    为什么:

    UPDATE products p
    SET p.products_price = (1 + p.products_price)
    WHERE p.products_id = 8
    

    它是在价格上加1,然后再做一遍?我正试着做一些更复杂的事情,但当它不起作用时,我把它分解成最简单的事情。我可以在这里做一些临时值,然后计算出新的价格,然后设置为那个值吗?

    请帮帮我,我很愤怒, 谢谢。

    MySQL客户端版本:4.1.22

    编辑:列是decimal类型,我尝试对int列进行相同的更新,结果相同。

    编辑:这不是在代码中运行的,因此代码不可能调用同一个更新两次

    3 回复  |  直到 16 年前
        1
  •  4
  •   PM 77-1 Stones    8 年前
    UPDATE products    
    SET products_price = (1 + products_price)    
    WHERE products_id = 8
    

    正常工作(删除了表别名“p”)

        2
  •  0
  •   Will Bickford    16 年前

    你的SQL看起来不错。“something”列是唯一的吗?确保只更新一条记录。

        3
  •  0
  •   Community CDub    8 年前

    这肯定会把产品价格定为2。一定还有别的事。

    Problem with updating a MySQL field with PHP 但是那里没有好的解决办法,所以我把这个也留着。

    您是否有任何打开的事务或其他访问数据库的脚本?

    编辑:你在评论中提到了连接-我敢打赌,你的连接不止一次地回拉同一行。