基于日期和用户的键值的SQL查询?

时间:2016-12-07 16:07:13

标签: mysql sql sql-update sql-insert on-duplicate-key

我试图将值发布到db中,但这对我来说有点棘手。 由于会有多个帖子,其中包含"用户名"每个日期我都无法将其中任何一个作为关键值。

所以我在想,如果我把一个名为" kay"抛出日期与用户结合这可以成为关键,因为组合值永远不会被抛出两次并按原样工作..

但是我的查询无法正常工作,猜测将此作为字符串发布是一个问题吗?

 INSERT INTO hsm_static (date, username, stats, stats5, stats16,
 stats20, kay) VALUES (CURDATE(), username, 1, 0, 0,0,usernameCURDATE()) ON
 DUPLICATE KEY UPDATE     stats=stats +1 WHERE username=username AND date = CURDATE()

有人有解决方案吗?感觉像我已经尝试过一切没有运气.. 感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您不需要引入生成的变量。 MySQL能够在多个列上构建唯一索引。

你应该尝试这样的事情:

ALTER TABLE `hsm_static ` 
ADD UNIQUE INDEX `hsm_static_uniq_myidx` (`username `, `date`);

您也可以使用它作为PRIMARY,但这可能需要对引用hsm_static的表进行一些额外的思考。