gpt4 book ai didi

php - 是什么导致 SQL 查询中 IF EXISTS 行出现语法错误?

转载 作者:行者123 更新时间:2023-11-29 12:24:32 25 4
gpt4 key购买 nike

我正在运行此 SQL 查询:

IF EXISTS (SELECT * FROM score WHERE username='ms')
UPDATE score SET score='30' WHERE username='ms'
ELSE
INSERT INTO score (username,score) VALUES ('ms','30')

但我不断收到此语法错误:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near IF EXISTS (SELECT * FROM score WHERE username='ms') UPDATE score SET score='30' at line 1

我做错了什么?

最佳答案

if 作为控制流仅允许在存储过程、函数和触发器的编程 block 中使用。这不应该与函数 if() 混淆,后者是任何表达式中都允许的非标准 MySQL 扩展。

但是,您可以使用替换重复 key 更新来执行您想要的操作。首先,在用户名上创建唯一索引:

create unique index idx_score_username on score(username);

然后插入:

INSERT INTO score (username, score)
VALUES ('ms', 30)
ON DUPLICATE KEY UPDATE score = VALUES(score);

请注意,我删除了 '30' 中的单引号。如果 score1 是数字(我认为这是一个合理的假设),则使用数字常量而不是字符串常量。

关于php - 是什么导致 SQL 查询中 IF EXISTS 行出现语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28525885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com