【问题标题】:In MySQL, can I use IF in INSERT context?在 MySQL 中,我可以在 INSERT 上下文中使用 IF 吗?
【发布时间】:2017-04-18 10:27:39
【问题描述】:

喜欢:

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 的情况下没有获得新值。

请注意,我使用它在一个查询中执行多个插入/更新,只是在这个示例中它只有一组值。

我做错了什么?

【问题讨论】:

    标签: mysql sql if-statement conditional


    【解决方案1】:

    我没有测试过,但我几乎可以肯定你必须切换查询的最后 2 行,以便你首先设置 modified 并将 count 设置为 VALUES(count),否则计数为设置为 GREATEST 并且永远不会更大 count

    【讨论】:

      猜你喜欢
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多