在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上测试简单案例
答案 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 !!! ) 禁用自动提交,尝试你想要的,做一些选择来检查你是否想要它,如果它不工作则简单回滚。