我已经四处寻找这个问题的答案并且遇到了 IGNORE 和 WHERE NOT EXISTS 但是它们似乎都与我想要完成的事情略有不同。我的MYSQL表如下所示:
id(自增 INT)、字符名(VARCHAR)、字符区域(VARCHAR)、字符域(VARCHAR)
我的数据是从一个网站检索到的,该网站返回游戏的所有角色,甚至是我数据库中已有的角色。
我希望保留所有字符的列表,但不要重复。我的问题似乎是我需要比较角色的名称、领域和地区,然后再决定它是否重复,因为相同的名称可以出现在不同的地区/领域组合中。
我尝试比较 3 个非自动递增列的所有值,如下所示:
替换为字符 ( charactername
, characterregion
, characterrealm
) 值 ('Peter','AMERICA','Realm1') WHERE NOT EXISTS(SELECT * FROM characters WHERE charactername
='Peter' AND characterregion
='AMERICA' AND characterrealm
='Realm1')
然而,这会返回一个 MYSQL 错误,因为语法不正确。我也尝试过 INSERT IGNORE INTO... 但这似乎只是在检查 id 值。我认为我根本不需要检查 id,因为我已将其设置为自动递增。
任何帮助将不胜感激,如果有帮助,我将在其他部分使用 PHP。再次感谢。