如果存在Mysql,那么

如果存在Mysql,那么,mysql,Mysql,我的代码有点问题。我直接在控制台中测试它,得到一个语法错误 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在“如果存在”附近从用户资源清册中选择*,其中资源id=“6” 第1行的uid='1'T' 我以前从未使用过IF EXISTS子句。。。所以我不确定我做错了什么 SQL语句只能在数据库中使用。您不能像尝试的那样在通用SQL上下文中使用它 但是,如果出现以下情况,则不需要使用: 在用户库存表上定义合适的唯一性约束: 使用: SQL语句只能在中使用。您不能像

我的代码有点问题。我直接在控制台中测试它,得到一个语法错误

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在“如果存在”附近从用户资源清册中选择*,其中资源id=“6” 第1行的uid='1'T'

我以前从未使用过IF EXISTS子句。。。所以我不确定我做错了什么

SQL语句只能在数据库中使用。您不能像尝试的那样在通用SQL上下文中使用它

但是,如果出现以下情况,则不需要使用:

在用户库存表上定义合适的唯一性约束:

使用:

SQL语句只能在中使用。您不能像尝试的那样在通用SQL上下文中使用它

但是,如果出现以下情况,则不需要使用:

在用户库存表上定义合适的唯一性约束:

使用:


可以非常感谢。对于我需要做的事情,这不是一个可行的选项,所以我必须找到另一种方法。@user3277023:如果你能解释为什么它不是一个可行的选项,那么有人可能会建议一个合适的替代方法。好的。非常感谢。对于我需要做的事情,这不是一个可行的选项,因此我必须找到另一种方法。@user3277023:如果你能解释为什么它不是一个可行的选项,那么有人可能会建议一个合适的替代方法。
IF EXISTS(SELECT * FROM user_inventory WHERE resource_id = '6' AND uid ='1') 
THEN UPDATE user_inventory SET resource_count = resource_count+1 WHERE resource_id = 6 AND uid = 1
ELSE INSERT INTO user_inventory(uid, resource_id, resource_count) VALUES (1, 6, 1);
ALTER TABLE user_inventory ADD UNIQUE (uid, resource_id)
INSERT INTO user_inventory
  (uid, resource_id, resource_count)
VALUES
  (1, 6, 1)
ON DUPLICATE KEY UPDATE
  resource_count = resource_count + 1