是否可以在MySQL中执行UPDATE查询,仅在满足特定条件时才更新字段值?像这样:
UPDATE test
SET
CASE
WHEN true
THEN field = 1
END
WHERE id = 123
换一种说法:
UPDATE test
SET
something = 1, /*field that always gets updated*/
CASE
WHEN true
THEN field = 1 /*field that should only get updated when condition is met*/
END
WHERE id = 123
正确的方法是什么?
是!
这里有另一个例子:
UPDATE prices
SET final_price= CASE
WHEN currency=1 THEN 0.81*final_price
ELSE final_price
END
之所以可行,是因为MySQL不会更新该行(如果没有更改),如docs中所述:
如果将列设置为其当前值,MySQL会注意到这一点,并且不会对其进行更新。
问题内容: 我有一个包含ID,WorkerID,IsActive标志(1或0)和LocalTime的表。每次工作人员处于活动状态或不活动状态时,都会使用WorkerID,1或0标志记录以及一个时间(LocalTime)创建一条记录。 我想插入一个新表中:从该表中,对于每个唯一的WorkerID,仅当该记录的IsActive标志为1时,才为该唯一的WorkerID选择具有最新LocalTime的记录
当条件(if)满足时,我尝试将文本着色为绿色或红色。 这是我的函数getAll() 在我的表格中,有一部分我想给文本上色。下面的例子不起作用。 我也试过,但它总是在绿色或红色上着色。 我想做这样的事情:如果有一天,然后颜色文本的红色或绿色。
问题内容: 我正在使用构建Web POST参数的方法,但是有一些值仅在它们不存在的情况下才想添加。 效果很好,但是如果我将变量设为可选,如何防止将其添加到参数中?像这样的东西(伪代码): 我希望这已经足够清楚了,有人知道如何解决吗? 问题答案: 创建初始字母后,您必须单独添加密钥: Python没有语法将键定义为条件键;如果您已经按顺序拥有所有内容,则可以使用dict理解: 但这不是很可读。 另一
问题内容: 我的数据结构如下: 我正在尝试进行一个SQL查询,该查询将计算正在运行的SUM,但在小时数为3时将重置。结果应如下所示: 问题答案: 您可以使用条件总和创建子组:
我知道使用ES6 JavaScript对象,您可以使用动态声明变量为对象键,例如: <代码>{[2]:“四!”} 给出输出{code>{“4”:“four!”} 问题是,可以采用类似的方法通过变量等内联方式添加整个属性吗?意思是,假设我有以下测试对象: 如果满足某个条件,我是否可以在内联对象中为someOtherProp编写任何内容,只将其添加到对象中?例如(伪代码),类似这样的东西 会像上面一样
我对可缓存批注的条件有问题。 从文档中,我了解到除非条件在被注释的方法被调用后得到验证,并且只有在不满足除非条件的情况下,方法返回的值才会被缓存(并实际返回)。否则,应返回缓存的值。 首先,这个假设是否正确? 编辑: [来自Spring文档]顾名思义,@Cacheable用于划分可缓存的方法-即,将结果存储到缓存中的方法,因此在后续调用(使用相同的参数)时,缓存中的值将返回,而不必实际执行该方法。