首页 > 解决方案 > 似乎无法将 REPLACE INTO 与 WHERE EXISTS 一起使用

问题描述

我试图确保仅在具有指定名称的竞争不存在或者如果它确实存在,它具有指定的用户 ID 时才进行替换。

REPLACE INTO ClimbingDB.competitions(competitionName) 
VALUES ('Competition Name') 
WHERE (NOT EXISTS(
    SELECT * FROM ClimbingDB.competitions 
    WHERE competitionName='Competition Name') 
OR EXISTS(
    SELECT * FROM ClimbingDB.competitions 
    WHERE competitionName='Competition Name' AND userID='5'))

我收到“您的 SQL 语法有错误”。

如果我执行“SELECT * FROM ClimbingDB.competitions”而不是 REPLACE,则此 SQL 语句有效,并且 REPLACE 语句在没有 WHERE 条件的情况下也可以正常工作。

标签: mysql

解决方案


推荐阅读