gpt4 book ai didi

php - MySQL语句在UPDATE SET时总是将值设置为0

转载 作者:行者123 更新时间:2023-11-30 23:13:24 27 4
gpt4 key购买 nike

我的 MySQL 语句(我用了 4 天找到了一个有效的语句)应该取 1 个给定值并检查 3 个不同的列是否已填充或为 NULL。如果该列有一个值,它将转到下一列。如果该列为 NULL,则应将给定值写入该单元格。

不幸的是,我的语句能够获取该列,但是当我尝试设置该值时,它始终设置为 0。当我尝试将现有值 ​​+1 时,它可以正常工作。

声明:

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

= 123 的位置,在生产中我将使用 IS NULL 987 代表来自“$value”的示例值

因此,如果 hardwareid1 真的是 123,它不会写入 987,而是写入 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的值也会改变。否则,它们的所有值(value)都将保留。

关于php - MySQL语句在UPDATE SET时总是将值设置为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18935062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com