当有多个唯一键时,是否可以有或选项?
例如,我该如何检查这个键或这个键,如果一个键抛出一个重复的错误,那么更新那个键?
我有两个唯一的密钥: UPN和(用户名,学校)
我们在out MYSQL中使用on duplicate update语句。如果传递了UPN,则在upn键上进行更新,如果是重复的,则插入新行。我想检查UPN和(用户名,学校)并执行以下操作:
如果upn匹配If (用户名,学校)匹配更新If upn不匹配,但(用户名,学校)在upn匹配时更新(用户名,学校)匹配如果UPN匹配,(用户名,学校)不更新UPN匹配
所以我需要用它来代替and,这可能吗?
灰分
发布于 2011-12-12 22:24:14
您可以在查询的ON DUPLICATE子句中使用条件运算符模拟这一点:
INSERT INTO thetable (id, username, school, othervalue)
VALUES (10, 'newtover', 'cool school', 'a comment')
ON DUPLICATE KEY UPDATE
username = IF(id = VALUES(id), VALUES(username), username),
school = IF(id = VALUES(id), VALUES(school), school),
id = IF(id = VALUES(id), id, VALUES(id));在这种情况下,更新的顺序很重要。
https://stackoverflow.com/questions/8475579
复制相似问题