在MySQL中,当col2和col3值不为NULL时,如何将col1的值设置为col2的值?

时间:2012-06-27 01:41:03

标签: mysql sql copy

在MySQL中,当col2和col3值不为NULL时,如何将col1的值设置为col2的值?

UPDATE t SET col1=col2 WHERE col2 IS NOT NULL AND col3 IS NOT NULL;

这会起作用吗?

解决方案

1)使用交易

2)使用临时表

3)在sqlfiddle上测试简单案例

2 个答案:

答案 0 :(得分:2)

是的,这是完全合法的。将来尝试在SQL Fiddle中运行东西,http://www.sqlfiddle.com/#!2/6fb42/1

答案 1 :(得分:1)

好的,您正在管理数据库但没有沙盒环境来测试...... :(

  

创建数据库沙箱;

     

mysqldump realdb tablename> dump.sql

     

mysql sandbox< dump.sql

瞧,你的沙箱环境可以参与:)

编辑:

我刚看到你无法创建新的数据库。你有没有想过临时桌子?

  

创建表时可以使用TEMPORARY关键字。 TEMPORARY表仅对当前连接可见,并在关闭连接时自动删除。这意味着两个不同的连接可以使用相同的临时表名,而不会相互冲突或与现有的同名非TEMPORARY表冲突。 (在删除临时表之前,将隐藏现有表。)要创建临时表,您必须具有CREATE TEMPORARY TABLES特权。

http://dev.mysql.com/doc/refman/5.1/en/create-table.html

编辑2:

我忘记了最简单的解决方案:( 请勿使用MYISAM表进行此操作,只需使用INNODB !!! ) 禁用自动提交,尝试你想要的,做一些选择来检查你是否想要它,如果它不工作则简单回滚。