这个是可能的吗?
update table set number2 = number where number != "" and set number, number2 = $number where number="";或者我需要做
update table set number2 = number where number != "";
update table set number = $number, number2 = number where number = "";发布于 2010-07-24 09:31:51
我只会将它们作为两个“独立”的语句,而不用担心去寻找一个聪明的解决方案(这很少是聪明的IMNSHO)。
你会看到我在上面引用了“分离”这个词,因为任何像样的DBMS都会提供事务支持,这将使这两个语句在原子性方面合而为一(ACID中的A)。
换句话说,就像这样:
start transaction;
update table set number2 = number where number != "";
update table set number = $number, number2 = number where number = "";
commit transaction;这几乎总是比使用CASE、IF等逐行函数的巧妙解决方案更快(假设number是索引的),因为两次非常快的传递比一次缓慢的传递要好:-)
https://stackoverflow.com/questions/3323438
复制相似问题