首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >up表设置number2 = number where number != "“和set number,number2 = $number where number = "";;

up表设置number2 = number where number != "“和set number,number2 = $number where number = "";;
EN

Stack Overflow用户
提问于 2010-07-24 09:27:43
回答 1查看 50关注 0票数 0

这个是可能的吗?

代码语言:javascript
复制
update table set number2 = number where number != "" and set number, number2 = $number where number="";

或者我需要做

代码语言:javascript
复制
update table set number2 = number where number != "";
update table set number = $number, number2 = number where number = "";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-24 09:31:51

我只会将它们作为两个“独立”的语句,而不用担心去寻找一个聪明的解决方案(这很少是聪明的IMNSHO)。

你会看到我在上面引用了“分离”这个词,因为任何像样的DBMS都会提供事务支持,这将使这两个语句在原子性方面合而为一(ACID中的A)。

换句话说,就像这样:

代码语言:javascript
复制
start transaction;
update table set number2 = number where number != "";
update table set number = $number, number2 = number where number = "";
commit transaction;

这几乎总是比使用CASEIF等逐行函数的巧妙解决方案更快(假设number是索引的),因为两次非常快的传递比一次缓慢的传递要好:-)

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

https://stackoverflow.com/questions/3323438

复制
相关文章

相似问题

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