php - sql语句在更新集时总是将值设置为 0

  显示原文与译文双语对照的内容
146 4

如果填充或者空,我的MySQL语句( 我用 4天来找工作) 应该接受 1个给定值并检查 3不同列。 如果列得到值,则转到下一列。 如果该列为空,则将给定值写入该单元格。

不幸的是,我的语句能够获取该列,但当我试图设置值时,它总是设置为 0. 当我尝试 +1时,它所使用的现有值没有问题。

语句:


UPDATE `license` SET
 `hardwareid1` = IF( `hardwareid1` = 123,`hardwareid1` = 987, `hardwareid1`), 
 `hardwareid2` = IF( `hardwareid2` = 123, `hardwareid2` = 987, `hardwareid2` )
 WHERE `code` = 99

= 123 中,我将使用 IS NULL987 代表来自"$value的示例值"

因这里如果hardwareID1真的是 123,那么它就是doestn写 987 而不是 0

请帮助

时间: 原作者:

122 0

UPDATE license
SET hardwareID3 = CASE WHEN hardwareID1 IS NOT NULL AND
 hardwareID2 IS NOT NULL AND
 hardwareID3 IS NULL
 THEN 987 
 ELSE hardwareID3 END,
 hardwareID2 = CASE WHEN hardwareID1 IS NOT NULL AND 
 hardwareID2 IS NULL 
 THEN 987 
 ELSE hardwareID2 END,
 hardwareID1 = CASE WHEN hardwareID1 IS NULL 
 THEN 987 
 ELSE hardwareID1 END
WHERE code = 99

查询的作用是当 hardwareID1 IS NULL 将新值 987 插入到列中时。 同时,如果 hardwareID1 值有值且 hardwareID2 为 null,则也会更改 hardwareID2的值。 否则,他们所有的价值将保留。

原作者:
...