在php中的Mysqli Case语句(更新)

时间:2014-04-20 20:51:31

标签: php mysql sql mysqli case

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'附近

我只是看不出错误。

2 个答案:

答案 0 :(得分:0)

您需要先结束案例,然后使用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'

答案 1 :(得分:0)

为什么过于复杂的东西?只需使用MySQL的ABS()函数:

UPDATE openor SET cur2 = ABS(cur2 - $val1e) WHERE id = 2