首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于条件的更新执行

问基于条件的更新执行
EN

Stack Overflow用户
提问于 2017-04-30 16:03:43
回答 2查看 27关注 0票数 0

MySQL中是否有一种方法可以插入将执行整个更新查询的条件?我知道您可以在查询本身中使用IF或CASE插入不同的值,但我要说的是这个场景:

如果(条件为真)更新..。

假设我想验证数据并根据结果执行更新(我知道这是个坏主意,数据验证应该是明智的,我只是在回顾理论上的可能性)。如下所示,我在下面对regexp测试一个值,以检查它是否为数值:

已执行的更新:

代码语言:javascript
复制
IF ( "12345" REGEXP "[0-9]+" ) UPDATE table SET numdata = "12345" WHERE...;

更新未执行:

代码语言:javascript
复制
IF ( "a1234" REGEXP "[0-9]+" ) UPDATE table SET numdata = "a1234" WHERE...;

谢谢,

普雷兹

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-30 16:07:50

只需将REGEXP放入您的WHERE子句:

代码语言:javascript
复制
DECLARE mynumdata varchar(10) = "a1234";
UPDATE table SET numdata = mynumdata
WHERE @numdata REGEXP "[0-9]+"
  AND <other update conditions>;
票数 0
EN

Stack Overflow用户

发布于 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]+"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43708400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档