【发布时间】:2017-09-27 14:42:26
【问题描述】:
我正在创建一个存储学生出勤率的应用程序。
我正在创建将存储此出勤率的数据库,但我被困在 mySQL 查询上。
我希望查询搜索“讲座名称”和“user_id”(来自其他数据库的外键),如果存在,则增加学生参加讲座的人数(参加人数++和总数++)
到目前为止,我有这个:
INSERT INTO `attendance`(`attendance_id`, `module_code`, `lecture_name`,
`attended`, `total`, `user_id`) VALUES ("null","test","TEST",1,1,1)
ON DUPLICATE KEY UPDATE
attended = attended+1,total = total+1
这将插入一个新行,但对于 ON DUPLICATE,没有办法传递主键来检查“重复”
我想知道除了 ON DUPLICATE KEY 在 MySQL 中是否还有其他方法可以做到这一点,或者是否有人可以帮助我。
这是数据库的屏幕截图。例如,请参阅“运营研究”是在应该增加值时创建的。这是因为我无法将主键添加到 SQL 查询中。
我将不胜感激任何帮助, 谢谢。
【问题讨论】:
-
你有什么问题?
-
你不需要主键,任何唯一索引都会触发
ON DUPLICATE KEY。您可能应该在(module_code, lecture_name, user_id)上有一个唯一索引
标签: php mysql sql if-statement exists