Mysql使用表中的if条件进行更新

时间:2013-02-18 09:10:01

标签: mysql if-statement sql-update

我无法使用UDPATE AND IF条件更新表中的2个字段。需要帮助。

我有一张发票表,其中如果字段编号= 0,我需要从容量更新字段数量,并在同一个表中更新字段编号=。

我的sql语句不起作用:

UPDATE INVDTLS_draft1 SET `Nos`=1, `Qty`=`Capacity` IF (Nos=0) WHERE id=id

错误消息:

  

#1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第1行'IF(Nos = 0)WHERE id = id'附近

3 个答案:

答案 0 :(得分:1)

使用AND运算符

尝试此查询
UPDATE INVDTLS_draft1 SET `Nos`=1, `Qty`=`Capacity` WHERE id=id AND Nos=0

答案 1 :(得分:0)

试试这个:

UPDATE INVDTLS_draft1 SET 
Nos=1,
Qty = if(nos=0, capacity, Qty)
WHERE id=?

如果nos!= 0,这对“数字无效”。

答案 2 :(得分:0)

为什么id = id?我想你需要这个:

UPDATE INVDTLS_draft1
SET    `Nos`=1, `Qty`=`Capacity`
WHERE  Nos=0