将mysql中的值从column1复制到column2

时间:2015-05-20 14:11:59

标签: mysql

我有一个名为table1的表,其中包含column1(pk)和column2。

在sql中插入table1时,如果column2的值为null ,是否可以检查column2的值,将column1的值插入columns2?

如果是这样,我该怎么做?

3 个答案:

答案 0 :(得分:1)

是的,使用IF声明:

UPDATE table1
SET column2 = IF(column1 IS NOT NULL, column1, 'Something else')

答案 1 :(得分:1)

答案 2 :(得分:0)

如果您不想对SQL语句进行任何更改,可以在BEFORE INSERT上定义 table1 触发器,有条件地为column2分配值。触发器的主体将包含这样的模式:

  IF NEW.column2 IS NULL THEN
    SET NEW.column2 = NEW.column1;
  END IF;

(注意:NEW.column1的值是语句中提供的值,如果省略,则为NULL。也就是说,如果column1的值由{auto_increment赋值。 1}},BEFORE INSERT触发器中指定的值,因此无法将其复制到column2。)

否则,您需要修改INSERT语句本身,使用适当的表达式为column2提供值,例如

 IFNULL(:col2val,:col1val)