mysqli_query($tradeL,"UPDATE openor SET cur2 = CASE
               WHEN $val1e<cur2 THEN cur2-$val1e
               WHEN $val1e>cur2 THEN $val1e-cur2
               WHEN $val1e=cur2 THEN '0'
               ELSE cur2
                WHERE id='2' END");


给出以下错误


  您的SQL语法有误。检查手册
  对应于您的MySQL服务器版本以使用正确的语法
  第7行的'WHERE id ='2'END'附近


我只是看不到错误。

最佳答案

您需要先结束案例,然后使用where子句

UPDATE openor
    SET cur2 = CASE
    WHEN $val1e<cur2 THEN cur2-$val1e
    WHEN $val1e>cur2 THEN $val1e-cur2
    WHEN $val1e=cur2 THEN '0'
    ELSE cur2 END
    WHERE id='2'


您也可以跳过其他部分

UPDATE openor
    SET cur2 = CASE
    WHEN $val1e<cur2 THEN cur2-$val1e
    WHEN $val1e>cur2 THEN $val1e-cur2
    WHEN $val1e=cur2 THEN '0'
    END
    WHERE id='2'

10-08 04:42