gpt4 book ai didi

Mysql 更新如果

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

这是我正在尝试使用的查询。

  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 附近使用的正确语法 更新snapfeed_statuses 放 “Pr”位于第 1 行

执行时间:0秒传输时间:0秒

总时间:0.002 秒

查询:ELSE INSERT INTO snap.feed_statuses (FeedId, ProcessId, StatusId流程开始日期)值(@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 秒

最佳答案

您可以使用Insert ... ON DUPLICATE UPDATE来解决此问题。

注意:您必须首先拥有 UNIQUE key ,我认为您已经拥有它。

INSERT INTO `snap`.`feed_statuses` 
(`FeedId`,
`ProcessId`,
`StatusId`,
`ProcessStartDate`
)
VALUES
(@feedId,
@processId,
@statusId,
NOW());
ON DUPLICATE KEY
UPDATE
`ProcessId` = @processId ,
`StatusId` = @statusId ,
`ProcessEndDate` = NOW()

您必须检查此:INSERT...ON DUPLICATE KEY

关于Mysql 更新如果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33996327/

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