2016-12-03 84 views
0

像:在MySQL中,我可以在INSERT上下文中使用IF嗎?

INSERT INTO `video_play_counts` 
    (`id`,`video_id`,`date`,`count`,`created`,`modified`) 
VALUES 
    ("",1,"2016-12-01",26,"2016-12-03 17:51:53","2016-12-03 17:51:53") 
ON DUPLICATE KEY UPDATE 
    `count` = GREATEST(`count`,VALUES(`count`)), 
    `modified` = IF(VALUES(`count`) > `count`,VALUES(`modified`),`modified`) 

所以,我對video_iddate,當我就這個唯一的密鑰的更新,在新的count值的情況下越大現有的,我想唯一的密鑰以相應地更新modified字段。 count字段按預期方式更新,但modified字段在UPDATE的情況下不會獲得新值。

請注意,我正在使用它在一個查詢中執行多次插入/更新,只是在本例中它只有一組值。

我在做什麼錯?

回答

1

我沒有測試過,但我幾乎可以肯定,你們切換的最後2行查詢,讓你先設置modified和設定count到VALUES(count),否則計數設置爲最大,永遠不會更大count

+0

是的,它的工作原理!我現在看到它:)非常感謝你! –

相關問題