gpt4 book ai didi

Mysql IF NOT EXISTS then语法

转载 作者:行者123 更新时间:2023-11-29 01:45:42 25 4
gpt4 key购买 nike

我现在无法为我想要的生成有效的 mysql 查询。我已经接近了

IF NOT EXISTS(SELECT * 
FROM Users
WHERE Downloads='c6310e0ae33f9377f6ae7994bbafe6e20113aaf4')
UPDATE Users
SET `Downloads`='c6310e0ae33f9377f6ae7994bbafe6e20113aaf4'
WHERE `User`='andrewfree';

这失败了,我正在阅读有关 INSERT IGNORE INTO 的内容,但这也没有帮助。我想要做的是将此散列添加到用户下载字段,如果它不存在于任何人下载字段的表中。

最佳答案

WHERE 子句中移动 EXISTS:

UPDATE Users
SET `Downloads`='c6310e0ae33f9377f6ae7994bbafe6e20113aaf4'
WHERE `User`='andrewfree'
AND NOT EXISTS(
SELECT 1
FROM Users
WHERE Downloads='c6310e0ae33f9377f6ae7994bbafe6e20113aaf4'
)

或者在 Users.Downloads 上添加唯一键并使用 UPDATE IGNORE:

ALTER TABLE Users ADD UNIQUE KEY downloads_unique (Downloads);

UPDATE IGNORE Users SET Downloads = 'c63...' WHERE User='andrewfree';

如果具有此 Downloads 值的行已存在,则不会完成更新。

With the IGNORE keyword, [...] Rows for which duplicate-key conflicts occur are not updated.

参见 UPDATE syntax .

关于Mysql IF NOT EXISTS then语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7399052/

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