2015-05-20 75 views
0

我有一個名爲table1的表,其中有column1(pk)和column2。將mysql中的值從column1複製到column2

在sql中插入table1時,是否可以檢查column2的值和如果column2的值爲null,則將column1的值插入到列2中

如果是的話我該怎麼做?

+0

我沒有在這裏得到的問題。如果你在表中創建一個'INSERT',那麼就不會有現有的值。這是除非你正在嘗試'插入...在重複密鑰更新...' –

回答

1

是,使用IF statment:

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

你的檢查是哪裏column2爲空? – Edward

0

如果你不想讓你的SQL語句中的任何改變,你可以在table1有條件地分配一個值來COLUMN2定義BEFORE INSERT觸發。觸發器的主體將包含這樣的模式:

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

(注:中NEW.column1值是在聲明中提供的值,或NULL,如果它被省略也就是說,如果column1值是通過auto_increment分配,即分配的值是在BEFORE INSERT觸發可,所以它不能被複制到column2。)


否則,你就需要修改INSERT語句本身,要使用美聯社propriate表達以提供值爲column2,例如,

IFNULL(:col2val,:col1val) 
相關問題