SQL 如果 userid = x 且 eventid = x,则设置为 yes

SQL set attending to yes if userid = x and eventid = x

非常是SQL的新手并且已经运行使用[=30]从android应用程序到phpmyadmin的简单查询=].现在我在处理稍微复杂一点的查询时遇到了问题,甚至不确定我的语法是否正确。

我愿意:

  1. 检查用户是否有活动条目,如果有,则相应地更新出勤率(在本例中,我会更新为是)
  2. 如果没有事件条目我想插入一个(见代码)

SELECT * FROM user_has_event
IF user_user_id = 1 AND event_event_id = 1
  THEN 
    SET attendance= 'Yes'
  ELSE
    INSERT INTO user_has_event (user_user_id = 1, event_event_id = 1, attendance = 'Yes')

有人能给我指出正确的方向吗?

你似乎想要insert . . . on duplicate key update:

insert into user_has_event(user_user_id, event_event_id, attendance)
    values (1, 1, 'yes')
    on duplicate key update attendance = 'yes';

请注意,要使其正常工作,您需要 user_has_event(user_user_id, event_event_id) 上的唯一索引(具有这两列的主键同样有效)。