gpt4 book ai didi

mysql - 我不明白如何检查sql中的查询条件

转载 作者:行者123 更新时间:2023-11-29 20:58:39 25 4
gpt4 key购买 nike

我正在尝试编写以下查询,但我对 SQL 不太满意。我隔离了插入和更新,它可以工作,但我无法进行条件控制。我不明白为什么它总是失败,有人可以帮助我吗?

IF (SELECT * FROM Infopoints WHERE name = @name) THEN 
BEGIN
INSERT INTO Infopoints (idInfopoint, createdAt, updatedAt, name)
VALUES(@idInfopoint, @createdAt, @updatedAt, @name)
END;
ELSE
BEGIN
UPDATE Infopoints SET updatedAt = @updatedAt WHERE name = @name;
END;
ENDIF;";

最佳答案

您想要重复 key 更新。我认为逻辑是:

INSERT INTO Infopoints (idInfopoint, createdAt, updatedAt, name) 
VALUES(@idInfopoint, @createdAt, @updatedAt, @name)
ON DUPLICATE KEY UPDATE updatedAt = @updatedAt;

为此,您需要在 name 上有一个唯一索引:

CREATE UNIQUE INDEX idx_infopoints_name ON infopoints(name);

您想要的 IF 逻辑是:

IF NOT EXISTS (SELECT * FROM Infopoints WHERE name = @name) THEN 
. . .

但是,ON DUPLICATE KEY UPDATE 是更好的方法。

关于mysql - 我不明白如何检查sql中的查询条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37413944/

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