MySQL中是否有一种方法可以插入将执行整个更新查询的条件?我知道您可以在查询本身中使用IF或CASE插入不同的值,但我要说的是这个场景:
如果(条件为真)更新..。
假设我想验证数据并根据结果执行更新(我知道这是个坏主意,数据验证应该是明智的,我只是在回顾理论上的可能性)。如下所示,我在下面对regexp测试一个值,以检查它是否为数值:
已执行的更新:
IF ( "12345" REGEXP "[0-9]+" ) UPDATE table SET numdata = "12345" WHERE...;更新未执行:
IF ( "a1234" REGEXP "[0-9]+" ) UPDATE table SET numdata = "a1234" WHERE...;谢谢,
普雷兹
发布于 2017-04-30 16:07:50
只需将REGEXP放入您的WHERE子句:
DECLARE mynumdata varchar(10) = "a1234";
UPDATE table SET numdata = mynumdata
WHERE @numdata REGEXP "[0-9]+"
AND <other update conditions>;发布于 2017-04-30 16:07:51
这样做的一种方法是在WHERE子句中添加条件。
所以如果你当初
UPDATE table SET numdata = "a1234" WHERE id=1
你可以把这个写成
UPDATE table SET numdata = "a1234" WHERE id=1 AND "1234" REGEXP "[0-9]+"
https://stackoverflow.com/questions/43708400
复制相似问题