【发布时间】:2016-03-03 22:54:36
【问题描述】:
这是我尝试使用的查询。
SET @id = 289;
SET @feedId = 5;
SET @statusid = 2;
SET @processId = 1;
SET @feedIdExists = (
SELECT EXISTS (
SELECT *
FROM feed_statuses
WHERE FeedId = @feedId));
IF feedIdExists = 1 THEN
UPDATE `snap`.`feed_statuses`
SET
`ProcessId` = @processId ,
`StatusId` = @statusId ,
`ProcessEndDate` = NOW()
WHERE
`FeedId` = @feedId;
ELSE
INSERT INTO `snap`.`feed_statuses`
(`FeedId`,
`ProcessId`,
`StatusId`,
`ProcessStartDate`
)
VALUES
(@feedId,
@processId,
@statusId,
NOW());
END IF;
大家好, if 语法有 3 个错误。 我不明白。 为什么它不能正常工作?
已执行 9 个查询,6 个成功,3 个错误,0 个警告
查询:使用 snap
0 行受影响
执行时间:0.001 秒 传输时间:0.001 秒
总时间:0.002 秒
查询:SET @id = 289
0 行受影响
执行时间:0.001 秒 传输时间:0秒
总时间:0.001 秒
查询:SET @feedId = 5
0 行受影响
执行时间:0.002 秒 传输时间:0秒
总时间:0.002 秒
查询:SET @statusid = 2
0 行受影响
执行时间:0.002 秒 传输时间:0秒
总时间:0.002 秒
查询:SET @processId = 1
0 行受影响
执行时间:0.002 秒 传输时间:0秒
总时间:0.002 秒
查询:SET @feedIdExists = (SELECT EXISTS (SELECT * FROM feed_statuses WHERE FeedId = @feedId))
0 行受影响
执行时间:0.002 秒 传输时间:0秒
总时间:0.002 秒
查询:IF feedIdExists = 1 THEN UPDATE snap.feed_statuses SET ProcessId = @processId , StatusId = @statusId , ProcessEndDate ...
错误代码:1064
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'IF feedIdExists = 1 THEN 附近使用正确的语法
更新snap.feed_statuses
放
`Pr' 在第 1 行
执行时间:0 秒 传输时间:0秒
总时间:0.002 秒
查询:ELSE INSERT INTO snap.feed_statuses(FeedId、ProcessId、StatusId、ProcessStartDate)值(@feedId、@processId、@s...
错误代码:1064
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'ELSE 附近使用的正确语法
插入snap.feed_statuses
(FeedId,
第 1 行的“ProcessId”
执行时间:0 秒 传输时间:0秒
总时间:0.002 秒
查询:END IF
错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的“END IF”附近使用的正确语法
执行时间:0 秒 传输时间:0秒 总时间:0.002 秒
【问题讨论】:
-
粘贴你得到的错误。没有他们,有人首先必须弄清楚问题是什么,然后解决问题。
标签: mysql if-statement